WebKit Bugzilla
New
Browse
Search+
Log In
×
Sign in with GitHub
or
Remember my login
Create Account
·
Forgot Password
Forgotten password account recovery
[patch]
patch
midmarker.patch (text/plain), 27.78 KB, created by
Hurnjoo Lee
on 2013-08-22 18:09:45 PDT
(
hide
)
Description:
patch
Filename:
MIME Type:
Creator:
Hurnjoo Lee
Created:
2013-08-22 18:09:45 PDT
Size:
27.78 KB
patch
obsolete
>diff --git a/LayoutTests/ChangeLog b/LayoutTests/ChangeLog >index 4c178d8..2e02598 100644 >--- a/LayoutTests/ChangeLog >+++ b/LayoutTests/ChangeLog >@@ -1,3 +1,15 @@ >+2013-08-22 Hurnjoo Lee <hurnjoo.lee@samsung.com> >+ >+ [Cairo] Marker-mid of svg is not displayed. >+ https://bugs.webkit.org/show_bug.cgi?id=113849 >+ >+ Reviewed by NOBODY (OOPS!). >+ >+ Add results for svg/custom/circular-marker-reference-2.svg. >+ >+ * platform/efl/svg/custom/circular-marker-reference-2-expected.png: Added. >+ * platform/efl/svg/custom/circular-marker-reference-2-expected.txt: Added. >+ > 2013-08-21 Ryosuke Niwa <rniwa@webkit.org> > > Update Mac test expectations. >diff --git a/LayoutTests/platform/efl/svg/custom/circular-marker-reference-2-expected.png b/LayoutTests/platform/efl/svg/custom/circular-marker-reference-2-expected.png >new file mode 100644 >index 0000000000000000000000000000000000000000..49f01b618636e7e2ce669d40b9b77f3324db7f58 >GIT binary patch >literal 12043 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 > >literal 0 >HcmV?d00001 > >diff --git a/LayoutTests/platform/efl/svg/custom/circular-marker-reference-2-expected.txt b/LayoutTests/platform/efl/svg/custom/circular-marker-reference-2-expected.txt >new file mode 100644 >index 0000000..d3f70ab >--- /dev/null >+++ b/LayoutTests/platform/efl/svg/custom/circular-marker-reference-2-expected.txt >@@ -0,0 +1,9 @@ >+layer at (0,0) size 800x600 >+ RenderView at (0,0) size 800x600 >+layer at (0,0) size 800x600 >+ RenderSVGRoot {svg} at (210,200) size 380x200 [start marker=mark] [middle marker=mark] [end marker=mark] >+ RenderSVGHiddenContainer {defs} at (0,0) size 0x0 [start marker=mark] [middle marker=mark] [end marker=mark] >+ RenderSVGResourceMarker {marker} [id="mark"] [markerUnits=strokeWidth] [ref at (4,4)] [angle=0.00] >+ RenderSVGEllipse {circle} at (405,305) size 80x80 [stroke={[type=SOLID] [color=#FF0000] [line cap=ROUND]}] [start marker=mark] [middle marker=mark] [end marker=mark] [cx=4.00] [cy=4.00] [r=3.00] >+ RenderSVGPath {path} at (210,200) size 380x80 [stroke={[type=SOLID] [color=#000000] [line cap=ROUND]}] [fill={[type=SOLID] [color=#000000]}] [start marker=mark] [middle marker=mark] [end marker=mark] [data="M -5 -2 L 0 -2 L 5 -2"] >+ RenderSVGPath {path} at (210,320) size 380x80 [stroke={[type=SOLID] [color=#000000] [line cap=ROUND]}] [fill={[type=SOLID] [color=#000000]}] [start marker=mark] [middle marker=mark] [end marker=mark] [data="M -5 2 L 0 2 L 5 2"] >diff --git a/Source/WebCore/ChangeLog b/Source/WebCore/ChangeLog >index aaff8fa..ba762e0 100644 >--- a/Source/WebCore/ChangeLog >+++ b/Source/WebCore/ChangeLog >@@ -1,3 +1,70 @@ >+2013-08-22 Hurnjoo Lee <hurnjoo.lee@samsung.com> >+ >+ [Cairo] Marker-mid of svg is not displayed. >+ https://bugs.webkit.org/show_bug.cgi?id=113849 >+ >+ Reviewed by NOBODY (OOPS!). >+ >+ Marker-mid of svg is not displayed because path elements that added to >+ cairo backend are optimized. If the new line_to has same slope with >+ the previous path element, then the path element is joined to previous >+ path element. >+ >+ Example: >+ >+ added path elements : moveto(-5,-2), lineto(0,-2), lineto(5,-2) >+ cairo_path_data : moveto(-5,-2), lineto(5, -2) >+ >+ This patch stores all of path informations separately in order to avoid >+ this problem. When generating positions of markers, we use stored path >+ informations instead of cairo_path_data. >+ >+ Test: svg/custom/circular-marker-reference-2.svg >+ >+ * platform/graphics/cairo/PathCairo.cpp: >+ (WebCore::Path::Path): >+ (WebCore::Path::operator=): >+ (WebCore::Path::clear): >+ (WebCore::Path::translate): >+ (WebCore::Path::moveTo): >+ (WebCore::Path::addLineTo): >+ (WebCore::Path::addQuadCurveTo): >+ (WebCore::Path::addBezierCurveTo): >+ (WebCore::Path::addArcTo): >+ (WebCore::Path::closeSubpath): >+ (WebCore::Path::apply): >+ (WebCore::Path::transform): >+ * platform/graphics/cairo/PlatformPathCairo.cpp: >+ (WebCore::CairoPath::appendPath): >+ (WebCore): >+ (WebCore::CairoPath::appendPathElement): >+ (WebCore::CairoPath::translate): >+ (WebCore::CairoPath::transform): >+ (WebCore::CairoPath::clear): >+ * platform/graphics/cairo/PlatformPathCairo.h: >+ (PlatformPathElement): >+ (WebCore::PlatformPathElement::~PlatformPathElement): >+ (WebCore::PlatformPathElement::pathElement): >+ (WebCore): >+ (PlatformPathElementMoveToPoint): >+ (WebCore::PlatformPathElementMoveToPoint::PlatformPathElementMoveToPoint): >+ (WebCore::PlatformPathElementMoveToPoint::transform): >+ (WebCore::PlatformPathElementMoveToPoint::translate): >+ (PlatformPathElementAddLineToPoint): >+ (WebCore::PlatformPathElementAddLineToPoint::PlatformPathElementAddLineToPoint): >+ (WebCore::PlatformPathElementAddLineToPoint::transform): >+ (WebCore::PlatformPathElementAddLineToPoint::translate): >+ (PlatformPathElementAddCurveToPoint): >+ (WebCore::PlatformPathElementAddCurveToPoint::PlatformPathElementAddCurveToPoint): >+ (WebCore::PlatformPathElementAddCurveToPoint::transform): >+ (WebCore::PlatformPathElementAddCurveToPoint::translate): >+ (PlatformPathElementCloseSubpath): >+ (WebCore::PlatformPathElementCloseSubpath::PlatformPathElementCloseSubpath): >+ (WebCore::PlatformPathElementCloseSubpath::transform): >+ (WebCore::PlatformPathElementCloseSubpath::translate): >+ (WebCore::CairoPath::pathElements): >+ (CairoPath): >+ > 2013-08-21 Commit Queue <commit-queue@webkit.org> > > Unreviewed, rolling out r154416. >diff --git a/Source/WebCore/platform/graphics/cairo/PathCairo.cpp b/Source/WebCore/platform/graphics/cairo/PathCairo.cpp >index 5fac5f0..3f02898 100644 >--- a/Source/WebCore/platform/graphics/cairo/PathCairo.cpp >+++ b/Source/WebCore/platform/graphics/cairo/PathCairo.cpp >@@ -53,12 +53,7 @@ Path::~Path() > Path::Path(const Path& other) > : m_path(0) > { >- if (other.isNull()) >- return; >- >- cairo_t* cr = ensurePlatformPath()->context(); >- OwnPtr<cairo_path_t> pathCopy = adoptPtr(cairo_copy_path(other.platformPath()->context())); >- cairo_append_path(cr, pathCopy.get()); >+ *this = other; > } > > PlatformPathPtr Path::ensurePlatformPath() >@@ -83,6 +78,8 @@ Path& Path::operator=(const Path& other) > cairo_t* cr = ensurePlatformPath()->context(); > OwnPtr<cairo_path_t> pathCopy = adoptPtr(cairo_copy_path(other.platformPath()->context())); > cairo_append_path(cr, pathCopy.get()); >+ if (other.platformPath()) >+ m_path->appendPath(*other.platformPath()); > } > > return *this; >@@ -93,8 +90,7 @@ void Path::clear() > if (isNull()) > return; > >- cairo_t* cr = platformPath()->context(); >- cairo_new_path(cr); >+ m_path->clear(); > } > > bool Path::isEmpty() const >@@ -122,18 +118,21 @@ FloatPoint Path::currentPoint() const > void Path::translate(const FloatSize& p) > { > cairo_t* cr = ensurePlatformPath()->context(); >+ m_path->translate(p); > cairo_translate(cr, -p.width(), -p.height()); > } > > void Path::moveTo(const FloatPoint& p) > { > cairo_t* cr = ensurePlatformPath()->context(); >+ m_path->appendPathElement(adoptPtr(new PlatformPathElementMoveToPoint(p))); > cairo_move_to(cr, p.x(), p.y()); > } > > void Path::addLineTo(const FloatPoint& p) > { > cairo_t* cr = ensurePlatformPath()->context(); >+ m_path->appendPathElement(adoptPtr(new PlatformPathElementAddLineToPoint(p))); > cairo_line_to(cr, p.x(), p.y()); > } > >@@ -155,15 +154,17 @@ void Path::addQuadCurveTo(const FloatPoint& controlPoint, const FloatPoint& poin > double x2 = point.x(); > double y2 = point.y(); > cairo_get_current_point(cr, &x, &y); >- cairo_curve_to(cr, >- x + 2.0 / 3.0 * (x1 - x), y + 2.0 / 3.0 * (y1 - y), >- x2 + 2.0 / 3.0 * (x1 - x2), y2 + 2.0 / 3.0 * (y1 - y2), >- x2, y2); >+ FloatPoint point1 = FloatPoint(x + 2.0 / 3.0 * (x1 - x), y + 2.0 / 3.0 * (y1 - y)); >+ FloatPoint point2 = FloatPoint(x2 + 2.0 / 3.0 * (x1 - x2), y2 + 2.0 / 3.0 * (y1 - y2)); >+ FloatPoint point3 = FloatPoint(x2, y2); >+ m_path->appendPathElement(adoptPtr(new PlatformPathElementAddCurveToPoint(point1, point2, point3))); >+ cairo_curve_to(cr, point1.x(), point1.y(), point2.x(), point2.y(), point3.x(), point3.y()); > } > > void Path::addBezierCurveTo(const FloatPoint& controlPoint1, const FloatPoint& controlPoint2, const FloatPoint& controlPoint3) > { > cairo_t* cr = ensurePlatformPath()->context(); >+ m_path->appendPathElement(adoptPtr(new PlatformPathElementAddCurveToPoint(controlPoint1, controlPoint2, controlPoint3))); > cairo_curve_to(cr, controlPoint1.x(), controlPoint1.y(), > controlPoint2.x(), controlPoint2.y(), > controlPoint3.x(), controlPoint3.y()); >@@ -216,7 +217,7 @@ void Path::addArcTo(const FloatPoint& p1, const FloatPoint& p2, float radius) > // or the points are collinear (triangle that the points form has area of zero value). > if ((p1.x() == p0.x() && p1.y() == p0.y()) || (p1.x() == p2.x() && p1.y() == p2.y()) || !radius > || !areaOfTriangleFormedByPoints(p0, p1, p2)) { >- cairo_line_to(cr, p1.x(), p1.y()); >+ addLineTo(p1); > return; > } > >@@ -228,7 +229,7 @@ void Path::addArcTo(const FloatPoint& p1, const FloatPoint& p2, float radius) > double cos_phi = (p1p0.x() * p1p2.x() + p1p0.y() * p1p2.y()) / (p1p0_length * p1p2_length); > // all points on a line logic > if (cos_phi == -1) { >- cairo_line_to(cr, p1.x(), p1.y()); >+ addLineTo(p1); > return; > } > if (cos_phi == 1) { >@@ -236,7 +237,7 @@ void Path::addArcTo(const FloatPoint& p1, const FloatPoint& p2, float radius) > unsigned int max_length = 65535; > double factor_max = max_length / p1p0_length; > FloatPoint ep((p0.x() + factor_max * p1p0.x()), (p0.y() + factor_max * p1p0.y())); >- cairo_line_to(cr, ep.x(), ep.y()); >+ addLineTo(ep); > return; > } > >@@ -276,7 +277,7 @@ void Path::addArcTo(const FloatPoint& p1, const FloatPoint& p2, float radius) > if ((sa < ea) && ((ea - sa) > piDouble)) > anticlockwise = true; > >- cairo_line_to(cr, t_p1p0.x(), t_p1p0.y()); >+ addLineTo(t_p1p0); > > addArc(p, radius, sa, ea, anticlockwise); > } >@@ -296,6 +297,9 @@ void Path::addEllipse(const FloatRect& rect) > void Path::closeSubpath() > { > cairo_t* cr = ensurePlatformPath()->context(); >+ if (m_path->pathElements().last() && m_path->pathElements().last()->pathElement().type != PathElementCloseSubpath) >+ m_path->appendPathElement(adoptPtr(new PlatformPathElementCloseSubpath())); >+ > cairo_close_path(cr); > } > >@@ -358,39 +362,8 @@ void Path::apply(void* info, PathApplierFunction function) const > if (isNull()) > return; > >- cairo_t* cr = platformPath()->context(); >- OwnPtr<cairo_path_t> pathCopy = adoptPtr(cairo_copy_path(cr)); >- cairo_path_data_t* data; >- PathElement pelement; >- FloatPoint points[3]; >- pelement.points = points; >- >- for (int i = 0; i < pathCopy->num_data; i += pathCopy->data[i].header.length) { >- data = &pathCopy->data[i]; >- switch (data->header.type) { >- case CAIRO_PATH_MOVE_TO: >- pelement.type = PathElementMoveToPoint; >- pelement.points[0] = FloatPoint(data[1].point.x,data[1].point.y); >- function(info, &pelement); >- break; >- case CAIRO_PATH_LINE_TO: >- pelement.type = PathElementAddLineToPoint; >- pelement.points[0] = FloatPoint(data[1].point.x,data[1].point.y); >- function(info, &pelement); >- break; >- case CAIRO_PATH_CURVE_TO: >- pelement.type = PathElementAddCurveToPoint; >- pelement.points[0] = FloatPoint(data[1].point.x,data[1].point.y); >- pelement.points[1] = FloatPoint(data[2].point.x,data[2].point.y); >- pelement.points[2] = FloatPoint(data[3].point.x,data[3].point.y); >- function(info, &pelement); >- break; >- case CAIRO_PATH_CLOSE_PATH: >- pelement.type = PathElementCloseSubpath; >- function(info, &pelement); >- break; >- } >- } >+ for (size_t i = 0; i < m_path->pathElements().size(); i++) >+ function(info, &m_path->pathElements()[i]->pathElement()); > } > > void Path::transform(const AffineTransform& trans) >@@ -398,6 +371,7 @@ void Path::transform(const AffineTransform& trans) > cairo_t* cr = ensurePlatformPath()->context(); > cairo_matrix_t c_matrix = cairo_matrix_t(trans); > cairo_matrix_invert(&c_matrix); >+ m_path->transform(trans); > cairo_transform(cr, &c_matrix); > } > >diff --git a/Source/WebCore/platform/graphics/cairo/PlatformPathCairo.cpp b/Source/WebCore/platform/graphics/cairo/PlatformPathCairo.cpp >index 3a7d512..82f5e25 100644 >--- a/Source/WebCore/platform/graphics/cairo/PlatformPathCairo.cpp >+++ b/Source/WebCore/platform/graphics/cairo/PlatformPathCairo.cpp >@@ -36,4 +36,55 @@ CairoPath::CairoPath() > { > } > >+void CairoPath::appendPath(const CairoPath& other) >+{ >+ const Vector<OwnPtr<PlatformPathElement> >& elements = other.pathElements(); >+ for (size_t i = 0; i < elements.size(); i++) >+ appendPathElement(elements[i]->pathElement()); >+} >+ >+void CairoPath::appendPathElement(const PassOwnPtr<PlatformPathElement>& element) >+{ >+ m_pathElements.append(element); >+} >+ >+void CairoPath::appendPathElement(const PathElement& pathElement) >+{ >+ switch (pathElement.type) { >+ case PathElementMoveToPoint: >+ m_pathElements.append(adoptPtr(new PlatformPathElementMoveToPoint(pathElement.points[0]))); >+ return; >+ case PathElementAddLineToPoint: >+ m_pathElements.append(adoptPtr(new PlatformPathElementAddLineToPoint(pathElement.points[0]))); >+ return; >+ case PathElementAddCurveToPoint: >+ m_pathElements.append(adoptPtr(new PlatformPathElementAddCurveToPoint(pathElement.points[0], pathElement.points[1], pathElement.points[2]))); >+ return; >+ case PathElementCloseSubpath: >+ m_pathElements.append(adoptPtr(new PlatformPathElementCloseSubpath())); >+ return; >+ default: >+ ASSERT_NOT_REACHED(); >+ return; >+ } >+} >+ >+void CairoPath::translate(const FloatSize& p) >+{ >+ for (size_t i = 0; i < m_pathElements.size(); i++) >+ m_pathElements[i]->translate(p); >+} >+ >+void CairoPath::transform(const AffineTransform& trans) >+{ >+ for (size_t i = 0; i < m_pathElements.size(); i++) >+ m_pathElements[i]->transform(trans); >+} >+ >+void CairoPath::clear() >+{ >+ cairo_new_path(m_cr.get()); >+ m_pathElements.clear(); >+} >+ > } >diff --git a/Source/WebCore/platform/graphics/cairo/PlatformPathCairo.h b/Source/WebCore/platform/graphics/cairo/PlatformPathCairo.h >index 938b942..5971298 100644 >--- a/Source/WebCore/platform/graphics/cairo/PlatformPathCairo.h >+++ b/Source/WebCore/platform/graphics/cairo/PlatformPathCairo.h >@@ -21,10 +21,124 @@ > #ifndef PlatformPathCairo_h > #define PlatformPathCairo_h > >+#include "AffineTransform.h" >+#include "FloatPoint.h" >+#include "Path.h" > #include "RefPtrCairo.h" >+#include <wtf/PassOwnPtr.h> >+#include <wtf/Vector.h> > > namespace WebCore { > >+class PlatformPathElement { >+public: >+ virtual ~PlatformPathElement() { } >+ >+ const PathElement& pathElement() { return m_pathElement; } >+ virtual void transform(const AffineTransform&) = 0; >+ virtual void translate(const FloatSize&) = 0; >+ >+protected: >+ PathElement m_pathElement; >+}; >+ >+class PlatformPathElementMoveToPoint : public PlatformPathElement { >+public: >+ PlatformPathElementMoveToPoint(const FloatPoint& point) >+ { >+ m_pathElementPoint = point; >+ m_pathElement.type = PathElementMoveToPoint; >+ m_pathElement.points = &m_pathElementPoint; >+ } >+ >+ virtual void transform(const AffineTransform& trans) >+ { >+ m_pathElementPoint = trans.mapPoint(m_pathElementPoint); >+ } >+ >+ virtual void translate(const FloatSize& p) >+ { >+ m_pathElementPoint.move(p); >+ } >+ >+private: >+ FloatPoint m_pathElementPoint; >+}; >+ >+class PlatformPathElementAddLineToPoint : public PlatformPathElement { >+public: >+ PlatformPathElementAddLineToPoint(const FloatPoint& point) >+ { >+ m_pathElementPoint = point; >+ m_pathElement.type = PathElementAddLineToPoint; >+ m_pathElement.points = &m_pathElementPoint; >+ } >+ >+ virtual void transform(const AffineTransform& trans) >+ { >+ m_pathElementPoint = trans.mapPoint(m_pathElementPoint); >+ } >+ >+ virtual void translate(const FloatSize& p) >+ { >+ m_pathElementPoint.move(p); >+ } >+ >+private: >+ FloatPoint m_pathElementPoint; >+}; >+ >+class PlatformPathElementAddCurveToPoint : public PlatformPathElement { >+public: >+ PlatformPathElementAddCurveToPoint(const FloatPoint& point1, const FloatPoint& point2, const FloatPoint& point3) >+ { >+ m_pathElementPoints[0] = point1; >+ m_pathElementPoints[1] = point2; >+ m_pathElementPoints[2] = point3; >+ m_pathElement.type = PathElementAddCurveToPoint; >+ m_pathElement.points = m_pathElementPoints; >+ } >+ >+ virtual void transform(const AffineTransform& trans) >+ { >+ m_pathElementPoints[0] = trans.mapPoint(m_pathElementPoints[0]); >+ m_pathElementPoints[1] = trans.mapPoint(m_pathElementPoints[1]); >+ m_pathElementPoints[2] = trans.mapPoint(m_pathElementPoints[2]); >+ } >+ >+ virtual void translate(const FloatSize& p) >+ { >+ m_pathElementPoints[0].move(p); >+ m_pathElementPoints[1].move(p); >+ m_pathElementPoints[2].move(p); >+ } >+ >+private: >+ FloatPoint m_pathElementPoints[3]; >+}; >+ >+class PlatformPathElementCloseSubpath : public PlatformPathElement { >+public: >+ PlatformPathElementCloseSubpath() >+ { >+ m_pathElement.type = PathElementCloseSubpath; >+ m_pathElement.points = &m_pathElementPoint; >+ } >+ >+ virtual void transform(const AffineTransform& trans) >+ { >+ m_pathElementPoint = trans.mapPoint(m_pathElementPoint); >+ } >+ >+ virtual void translate(const FloatSize& p) >+ { >+ m_pathElementPoint.move(p); >+ } >+ >+private: >+ FloatPoint m_pathElementPoint; >+}; >+ > // This is necessary since cairo_path_fixed_t isn't exposed in Cairo's public API. > class CairoPath { > public: >@@ -33,9 +147,17 @@ public: > ~CairoPath() {} > > cairo_t* context() { return m_cr.get(); } >+ const Vector<OwnPtr<PlatformPathElement> >& pathElements() const { return m_pathElements; } >+ void appendPath(const CairoPath& other); >+ void appendPathElement(const PassOwnPtr<PlatformPathElement>&); >+ void appendPathElement(const PathElement&); >+ void translate(const FloatSize&); >+ void transform(const AffineTransform&); >+ void clear(); > > private: > RefPtr<cairo_t> m_cr; >+ Vector<OwnPtr<PlatformPathElement> > m_pathElements; > }; > > } // namespace WebCore
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Formatted Diff
|
Diff
Attachments on
bug 113849
:
196281
|
198021
|
209418
|
209444
|
209445
|
209457
|
209507
|
375220
|
375221
|
393240
|
393366
|
393368