summaryrefslogtreecommitdiffstats
path: root/Source/WebCore/rendering/svg
diff options
context:
space:
mode:
authorBen Murdoch <benm@google.com>2011-05-16 16:25:10 +0100
committerBen Murdoch <benm@google.com>2011-05-23 18:54:14 +0100
commitab9e7a118cf1ea2e3a93dce683b2ded3e7291ddb (patch)
treedb769fadd053248f85db67434a5b275224defef7 /Source/WebCore/rendering/svg
parent52e2557aeb8477967e97fd24f20f8f407a10fa15 (diff)
downloadexternal_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')
-rw-r--r--Source/WebCore/rendering/svg/RenderSVGResourceClipper.h4
-rw-r--r--Source/WebCore/rendering/svg/RenderSVGResourceContainer.cpp4
-rw-r--r--Source/WebCore/rendering/svg/RenderSVGResourceGradient.cpp4
-rw-r--r--Source/WebCore/rendering/svg/RenderSVGResourcePattern.cpp4
-rw-r--r--Source/WebCore/rendering/svg/RenderSVGRoot.cpp2
-rw-r--r--Source/WebCore/rendering/svg/SVGImageBufferTools.cpp4
-rw-r--r--Source/WebCore/rendering/svg/SVGImageBufferTools.h3
-rw-r--r--Source/WebCore/rendering/svg/SVGInlineTextBox.cpp1
-rw-r--r--Source/WebCore/rendering/svg/SVGMarkerLayoutInfo.h4
-rw-r--r--Source/WebCore/rendering/svg/SVGResources.h3
-rw-r--r--Source/WebCore/rendering/svg/SVGResourcesCache.h3
-rw-r--r--Source/WebCore/rendering/svg/SVGResourcesCycleSolver.h3
-rw-r--r--Source/WebCore/rendering/svg/SVGTextChunkBuilder.h3
-rw-r--r--Source/WebCore/rendering/svg/SVGTextLayoutAttributesBuilder.h3
-rw-r--r--Source/WebCore/rendering/svg/SVGTextLayoutEngine.cpp2
-rw-r--r--Source/WebCore/rendering/svg/SVGTextLayoutEngine.h3
-rw-r--r--Source/WebCore/rendering/svg/SVGTextLayoutEngineBaseline.h3
-rw-r--r--Source/WebCore/rendering/svg/SVGTextLayoutEngineSpacing.h3
-rw-r--r--Source/WebCore/rendering/svg/SVGTextMetrics.cpp1
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 {