diff options
author | Ben Murdoch <benm@google.com> | 2011-05-16 16:25:10 +0100 |
---|---|---|
committer | Ben Murdoch <benm@google.com> | 2011-05-23 18:54:14 +0100 |
commit | ab9e7a118cf1ea2e3a93dce683b2ded3e7291ddb (patch) | |
tree | db769fadd053248f85db67434a5b275224defef7 /Source/WebCore/rendering/svg | |
parent | 52e2557aeb8477967e97fd24f20f8f407a10fa15 (diff) | |
download | external_webkit-ab9e7a118cf1ea2e3a93dce683b2ded3e7291ddb.zip external_webkit-ab9e7a118cf1ea2e3a93dce683b2ded3e7291ddb.tar.gz external_webkit-ab9e7a118cf1ea2e3a93dce683b2ded3e7291ddb.tar.bz2 |
Merge WebKit at r76408: Initial merge by git.
Change-Id: I5b91decbd693ccbf5c1b8354b37cd68cc9a1ea53
Diffstat (limited to 'Source/WebCore/rendering/svg')
19 files changed, 36 insertions, 21 deletions
diff --git a/Source/WebCore/rendering/svg/RenderSVGResourceClipper.h b/Source/WebCore/rendering/svg/RenderSVGResourceClipper.h index 7f862a7..99861d8 100644 --- a/Source/WebCore/rendering/svg/RenderSVGResourceClipper.h +++ b/Source/WebCore/rendering/svg/RenderSVGResourceClipper.h @@ -35,7 +35,9 @@ namespace WebCore { -struct ClipperData : FastAllocBase { +struct ClipperData { + WTF_MAKE_FAST_ALLOCATED; +public: OwnPtr<ImageBuffer> clipMaskImage; }; diff --git a/Source/WebCore/rendering/svg/RenderSVGResourceContainer.cpp b/Source/WebCore/rendering/svg/RenderSVGResourceContainer.cpp index 2a8a47f..0215e8e 100644 --- a/Source/WebCore/rendering/svg/RenderSVGResourceContainer.cpp +++ b/Source/WebCore/rendering/svg/RenderSVGResourceContainer.cpp @@ -182,8 +182,8 @@ AffineTransform RenderSVGResourceContainer::transformOnNonScalingStroke(RenderOb return resourceTransform; SVGStyledTransformableElement* element = static_cast<SVGStyledTransformableElement*>(object->node()); - AffineTransform transform = resourceTransform; - transform.multiply(element->getScreenCTM(SVGLocatable::DisallowStyleUpdate)); + AffineTransform transform = element->getScreenCTM(SVGLocatable::DisallowStyleUpdate); + transform *= resourceTransform; return transform; } diff --git a/Source/WebCore/rendering/svg/RenderSVGResourceGradient.cpp b/Source/WebCore/rendering/svg/RenderSVGResourceGradient.cpp index 5ad5d84..9f2bb8d 100644 --- a/Source/WebCore/rendering/svg/RenderSVGResourceGradient.cpp +++ b/Source/WebCore/rendering/svg/RenderSVGResourceGradient.cpp @@ -133,7 +133,7 @@ static inline AffineTransform clipToTextMask(GraphicsContext* context, matrix.translate(maskBoundingBox.x(), maskBoundingBox.y()); matrix.scaleNonUniform(maskBoundingBox.width(), maskBoundingBox.height()); } - matrix.multLeft(gradientTransform); + matrix *= gradientTransform; return matrix; } #endif @@ -190,7 +190,7 @@ bool RenderSVGResourceGradient::applyResource(RenderObject* object, RenderStyle* AffineTransform gradientTransform; calculateGradientTransform(gradientTransform); - gradientData->userspaceTransform.multLeft(gradientTransform); + gradientData->userspaceTransform *= gradientTransform; gradientData->gradient->setGradientSpaceTransform(gradientData->userspaceTransform); } diff --git a/Source/WebCore/rendering/svg/RenderSVGResourcePattern.cpp b/Source/WebCore/rendering/svg/RenderSVGResourcePattern.cpp index 330a21a..1b14ce4 100644 --- a/Source/WebCore/rendering/svg/RenderSVGResourcePattern.cpp +++ b/Source/WebCore/rendering/svg/RenderSVGResourcePattern.cpp @@ -139,7 +139,7 @@ bool RenderSVGResourcePattern::applyResource(RenderObject* object, RenderStyle* AffineTransform patternTransform = m_attributes.patternTransform(); if (!patternTransform.isIdentity()) - patternData->transform.multiply(patternTransform); + patternData->transform = patternTransform * patternData->transform; patternData->pattern->setPatternSpaceTransform(patternData->transform); } @@ -228,7 +228,7 @@ bool RenderSVGResourcePattern::buildTileImageTransform(RenderObject* renderer, if (patternBoundaries.width() <= 0 || patternBoundaries.height() <= 0) return false; - AffineTransform viewBoxCTM = patternElement->viewBoxToViewTransform(patternElement->viewBox(), patternElement->preserveAspectRatio(), patternBoundaries.width(), patternBoundaries.height()); + AffineTransform viewBoxCTM = patternElement->viewBoxToViewTransform(attributes.viewBox(), attributes.preserveAspectRatio(), patternBoundaries.width(), patternBoundaries.height()); // Apply viewBox/objectBoundingBox transformations. if (!viewBoxCTM.isIdentity()) diff --git a/Source/WebCore/rendering/svg/RenderSVGRoot.cpp b/Source/WebCore/rendering/svg/RenderSVGRoot.cpp index aa87b09..3a8dce9 100644 --- a/Source/WebCore/rendering/svg/RenderSVGRoot.cpp +++ b/Source/WebCore/rendering/svg/RenderSVGRoot.cpp @@ -246,7 +246,7 @@ AffineTransform RenderSVGRoot::localToBorderBoxTransform() const float scale = svg->currentScale(); FloatPoint translate = svg->currentTranslate(); AffineTransform ctm(scale, 0, 0, scale, borderAndPadding.width() + translate.x(), borderAndPadding.height() + translate.y()); - return svg->viewBoxToViewTransform(width() / scale, height() / scale) * ctm; + return ctm * svg->viewBoxToViewTransform(width() / scale, height() / scale); } IntSize RenderSVGRoot::parentOriginToBorderBox() const diff --git a/Source/WebCore/rendering/svg/SVGImageBufferTools.cpp b/Source/WebCore/rendering/svg/SVGImageBufferTools.cpp index f0657af..6726694 100644 --- a/Source/WebCore/rendering/svg/SVGImageBufferTools.cpp +++ b/Source/WebCore/rendering/svg/SVGImageBufferTools.cpp @@ -43,7 +43,7 @@ void SVGImageBufferTools::calculateTransformationToOutermostSVGCoordinateSystem( absoluteTransform = currentContentTransformation(); while (current) { - absoluteTransform.multiply(current->localToParentTransform()); + absoluteTransform = current->localToParentTransform() * absoluteTransform; if (current->isSVGRoot()) break; current = current->parent(); @@ -83,7 +83,7 @@ void SVGImageBufferTools::renderSubtreeToImageBuffer(ImageBuffer* image, RenderO AffineTransform& contentTransformation = currentContentTransformation(); AffineTransform savedContentTransformation = contentTransformation; - contentTransformation.multiply(subtreeContentTransformation); + contentTransformation = subtreeContentTransformation * contentTransformation; item->layoutIfNeeded(); item->paint(info, 0, 0); diff --git a/Source/WebCore/rendering/svg/SVGImageBufferTools.h b/Source/WebCore/rendering/svg/SVGImageBufferTools.h index cfb15b2..11577c0 100644 --- a/Source/WebCore/rendering/svg/SVGImageBufferTools.h +++ b/Source/WebCore/rendering/svg/SVGImageBufferTools.h @@ -32,7 +32,8 @@ class FloatSize; class GraphicsContext; class RenderObject; -class SVGImageBufferTools : public Noncopyable { +class SVGImageBufferTools { + WTF_MAKE_NONCOPYABLE(SVGImageBufferTools); public: static bool createImageBuffer(const FloatRect& absoluteTargetRect, const FloatRect& clampedAbsoluteTargetRect, OwnPtr<ImageBuffer>&, ColorSpace); static void renderSubtreeToImageBuffer(ImageBuffer*, RenderObject*, const AffineTransform&); diff --git a/Source/WebCore/rendering/svg/SVGInlineTextBox.cpp b/Source/WebCore/rendering/svg/SVGInlineTextBox.cpp index f370310..2879f20 100644 --- a/Source/WebCore/rendering/svg/SVGInlineTextBox.cpp +++ b/Source/WebCore/rendering/svg/SVGInlineTextBox.cpp @@ -31,6 +31,7 @@ #include "RenderSVGResource.h" #include "RenderSVGResourceSolidColor.h" #include "SVGRootInlineBox.h" +#include "TextRun.h" using namespace std; diff --git a/Source/WebCore/rendering/svg/SVGMarkerLayoutInfo.h b/Source/WebCore/rendering/svg/SVGMarkerLayoutInfo.h index 0eb3689..32317b9 100644 --- a/Source/WebCore/rendering/svg/SVGMarkerLayoutInfo.h +++ b/Source/WebCore/rendering/svg/SVGMarkerLayoutInfo.h @@ -21,6 +21,7 @@ #define SVGMarkerLayoutInfo_h #if ENABLE(SVG) +#include "AffineTransform.h" #include "RenderObject.h" #include "SVGMarkerData.h" #include <wtf/Noncopyable.h> @@ -42,7 +43,8 @@ struct MarkerLayout { AffineTransform matrix; }; -class SVGMarkerLayoutInfo : public Noncopyable { +class SVGMarkerLayoutInfo { + WTF_MAKE_NONCOPYABLE(SVGMarkerLayoutInfo); public: SVGMarkerLayoutInfo(); ~SVGMarkerLayoutInfo(); diff --git a/Source/WebCore/rendering/svg/SVGResources.h b/Source/WebCore/rendering/svg/SVGResources.h index dd328b8..48cca23 100644 --- a/Source/WebCore/rendering/svg/SVGResources.h +++ b/Source/WebCore/rendering/svg/SVGResources.h @@ -38,7 +38,8 @@ class RenderSVGResourceMasker; class SVGRenderStyle; // Holds a set of resources associated with a RenderObject -class SVGResources : public Noncopyable { +class SVGResources { + WTF_MAKE_NONCOPYABLE(SVGResources); WTF_MAKE_FAST_ALLOCATED; public: SVGResources(); diff --git a/Source/WebCore/rendering/svg/SVGResourcesCache.h b/Source/WebCore/rendering/svg/SVGResourcesCache.h index 30eaeca..bc73f4d 100644 --- a/Source/WebCore/rendering/svg/SVGResourcesCache.h +++ b/Source/WebCore/rendering/svg/SVGResourcesCache.h @@ -31,7 +31,8 @@ class RenderStyle; class RenderSVGResourceContainer; class SVGResources; -class SVGResourcesCache : public Noncopyable { +class SVGResourcesCache { + WTF_MAKE_NONCOPYABLE(SVGResourcesCache); WTF_MAKE_FAST_ALLOCATED; public: SVGResourcesCache(); ~SVGResourcesCache(); diff --git a/Source/WebCore/rendering/svg/SVGResourcesCycleSolver.h b/Source/WebCore/rendering/svg/SVGResourcesCycleSolver.h index 0653304..099f91c 100644 --- a/Source/WebCore/rendering/svg/SVGResourcesCycleSolver.h +++ b/Source/WebCore/rendering/svg/SVGResourcesCycleSolver.h @@ -29,7 +29,8 @@ class RenderObject; class RenderSVGResourceContainer; class SVGResources; -class SVGResourcesCycleSolver : public Noncopyable { +class SVGResourcesCycleSolver { + WTF_MAKE_NONCOPYABLE(SVGResourcesCycleSolver); public: SVGResourcesCycleSolver(RenderObject*, SVGResources*); ~SVGResourcesCycleSolver(); diff --git a/Source/WebCore/rendering/svg/SVGTextChunkBuilder.h b/Source/WebCore/rendering/svg/SVGTextChunkBuilder.h index 36342e7..321f391 100644 --- a/Source/WebCore/rendering/svg/SVGTextChunkBuilder.h +++ b/Source/WebCore/rendering/svg/SVGTextChunkBuilder.h @@ -35,7 +35,8 @@ struct SVGTextFragment; // Phase two performed the actual per-character layout, computing the final positions for each character, stored in the SVGInlineTextBox objects (SVGTextFragment). // Phase three performs all modifications that have to be applied to each individual text chunk (text-anchor & textLength). -class SVGTextChunkBuilder : public Noncopyable { +class SVGTextChunkBuilder { + WTF_MAKE_NONCOPYABLE(SVGTextChunkBuilder); public: SVGTextChunkBuilder(); diff --git a/Source/WebCore/rendering/svg/SVGTextLayoutAttributesBuilder.h b/Source/WebCore/rendering/svg/SVGTextLayoutAttributesBuilder.h index f29ac64..c68185b 100644 --- a/Source/WebCore/rendering/svg/SVGTextLayoutAttributesBuilder.h +++ b/Source/WebCore/rendering/svg/SVGTextLayoutAttributesBuilder.h @@ -38,7 +38,8 @@ class RenderSVGText; // to create the InlineBox tree based on text chunk boundaries & BiDi information. // The second layout phase is carried out by SVGTextLayoutEngine. -class SVGTextLayoutAttributesBuilder : public Noncopyable { +class SVGTextLayoutAttributesBuilder { + WTF_MAKE_NONCOPYABLE(SVGTextLayoutAttributesBuilder); public: SVGTextLayoutAttributesBuilder(); void buildLayoutAttributesForTextSubtree(RenderSVGText*); diff --git a/Source/WebCore/rendering/svg/SVGTextLayoutEngine.cpp b/Source/WebCore/rendering/svg/SVGTextLayoutEngine.cpp index 7eefad6..3b28d2b 100644 --- a/Source/WebCore/rendering/svg/SVGTextLayoutEngine.cpp +++ b/Source/WebCore/rendering/svg/SVGTextLayoutEngine.cpp @@ -321,7 +321,7 @@ void SVGTextLayoutEngine::finalizeTransformMatrices(Vector<SVGInlineTextBox*>& b if (transform.isIdentity()) transform = textBoxTransformation; else - transform.multiply(textBoxTransformation); + transform = textBoxTransformation * transform; } } diff --git a/Source/WebCore/rendering/svg/SVGTextLayoutEngine.h b/Source/WebCore/rendering/svg/SVGTextLayoutEngine.h index ad058d8..631e4cd 100644 --- a/Source/WebCore/rendering/svg/SVGTextLayoutEngine.h +++ b/Source/WebCore/rendering/svg/SVGTextLayoutEngine.h @@ -44,7 +44,8 @@ class SVGRenderStyle; // RenderSVGInlineText renderers to compute the final positions for each character // which are stored in the SVGInlineTextBox objects. -class SVGTextLayoutEngine : public Noncopyable { +class SVGTextLayoutEngine { + WTF_MAKE_NONCOPYABLE(SVGTextLayoutEngine); public: SVGTextLayoutEngine(); SVGTextChunkBuilder& chunkLayoutBuilder() { return m_chunkLayoutBuilder; } diff --git a/Source/WebCore/rendering/svg/SVGTextLayoutEngineBaseline.h b/Source/WebCore/rendering/svg/SVGTextLayoutEngineBaseline.h index d753b39..6794bf3 100644 --- a/Source/WebCore/rendering/svg/SVGTextLayoutEngineBaseline.h +++ b/Source/WebCore/rendering/svg/SVGTextLayoutEngineBaseline.h @@ -33,7 +33,8 @@ class SVGRenderStyle; class SVGTextMetrics; // Helper class used by SVGTextLayoutEngine to handle 'alignment-baseline' / 'dominant-baseline' and 'baseline-shift'. -class SVGTextLayoutEngineBaseline : public Noncopyable { +class SVGTextLayoutEngineBaseline { + WTF_MAKE_NONCOPYABLE(SVGTextLayoutEngineBaseline); public: SVGTextLayoutEngineBaseline(const Font&); diff --git a/Source/WebCore/rendering/svg/SVGTextLayoutEngineSpacing.h b/Source/WebCore/rendering/svg/SVGTextLayoutEngineSpacing.h index 0a6d736..71d4707 100644 --- a/Source/WebCore/rendering/svg/SVGTextLayoutEngineSpacing.h +++ b/Source/WebCore/rendering/svg/SVGTextLayoutEngineSpacing.h @@ -30,7 +30,8 @@ class SVGRenderStyle; class SVGElement; // Helper class used by SVGTextLayoutEngine to handle 'kerning' / 'letter-spacing' and 'word-spacing'. -class SVGTextLayoutEngineSpacing : public Noncopyable { +class SVGTextLayoutEngineSpacing { + WTF_MAKE_NONCOPYABLE(SVGTextLayoutEngineSpacing); public: SVGTextLayoutEngineSpacing(const Font&); diff --git a/Source/WebCore/rendering/svg/SVGTextMetrics.cpp b/Source/WebCore/rendering/svg/SVGTextMetrics.cpp index 58d0ad9..ec8c2c6 100644 --- a/Source/WebCore/rendering/svg/SVGTextMetrics.cpp +++ b/Source/WebCore/rendering/svg/SVGTextMetrics.cpp @@ -23,6 +23,7 @@ #include "SVGTextMetrics.h" #include "RenderSVGInlineText.h" +#include "TextRun.h" namespace WebCore { |