[SCM] WebKit Debian packaging branch, debian/experimental, updated. debian/1.3.8-1-1049-g2e11a8e
alex at webkit.org
alex at webkit.org
Fri Jan 21 15:08:05 UTC 2011
The following commit has been merged in the debian/experimental branch:
commit 3e127212ae82bd24e986fd5e41d72a0575013d21
Author: alex at webkit.org <alex at webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Date: Fri Jan 7 19:05:18 2011 +0000
2011-01-07 Alejandro G. Castro <alex at igalia.com>
Reviewed by Martin Robinson.
[cairo] Rendering a lot of arcs on top of each other causes time
outs in some tests
https://bugs.webkit.org/show_bug.cgi?id=50869
We avoid the situation where we have to render the same arc
multiple times over itself. Now it renders just one oval and
moves to the end angle.
* platform/graphics/cairo/PathCairo.cpp:
(WebCore::Path::addArc):
2011-01-07 Alejandro G. Castro <alex at igalia.com>
Reviewed by Martin Robinson.
[cairo] Rendering a lot of arcs on top of each other causes time
outs in some tests
https://bugs.webkit.org/show_bug.cgi?id=50869
Unskip canvas-largedraws.html after improving the performance for
big angles.
* platform/gtk/Skipped:
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@75256 268f45cc-cd09-0410-ab3c-d52691b4dbfc
diff --git a/LayoutTests/ChangeLog b/LayoutTests/ChangeLog
index 9c6dba3..8f8b430 100644
--- a/LayoutTests/ChangeLog
+++ b/LayoutTests/ChangeLog
@@ -1,3 +1,16 @@
+2011-01-07 Alejandro G. Castro <alex at igalia.com>
+
+ Reviewed by Martin Robinson.
+
+ [cairo] Rendering a lot of arcs on top of each other causes time
+ outs in some tests
+ https://bugs.webkit.org/show_bug.cgi?id=50869
+
+ Unskip canvas-largedraws.html after improving the performance for
+ big angles.
+
+ * platform/gtk/Skipped:
+
2011-01-06 Zhenyao Mo <zmo at google.com>
Reviewed by Kenneth Russell.
diff --git a/LayoutTests/platform/gtk/Skipped b/LayoutTests/platform/gtk/Skipped
index 5baa374..961881f 100644
--- a/LayoutTests/platform/gtk/Skipped
+++ b/LayoutTests/platform/gtk/Skipped
@@ -5580,11 +5580,6 @@ fast/dom/StyleSheet/detached-style-pi-2.xhtml
fast/dom/StyleSheet/detached-style-pi.xhtml
fast/dom/StyleSheet/detached-style.html
-# The test times out, we have to improve the performance of the
-# rendering in these situations to
-# https://bugs.webkit.org/show_bug.cgi?id=50869
-fast/canvas/canvas-largedraws.html
-
# https://bugs.webkit.org/show_bug.cgi?id=50886
fast/dom/Window/timer-resume-on-navigation-back.html
diff --git a/WebCore/ChangeLog b/WebCore/ChangeLog
index 6e27f21..d4288e3 100644
--- a/WebCore/ChangeLog
+++ b/WebCore/ChangeLog
@@ -1,3 +1,18 @@
+2011-01-07 Alejandro G. Castro <alex at igalia.com>
+
+ Reviewed by Martin Robinson.
+
+ [cairo] Rendering a lot of arcs on top of each other causes time
+ outs in some tests
+ https://bugs.webkit.org/show_bug.cgi?id=50869
+
+ We avoid the situation where we have to render the same arc
+ multiple times over itself. Now it renders just one oval and
+ moves to the end angle.
+
+ * platform/graphics/cairo/PathCairo.cpp:
+ (WebCore::Path::addArc):
+
2011-01-07 Carlos Garcia Campos <cgarcia at igalia.com>
Reviewed by Martin Robinson.
diff --git a/WebCore/platform/graphics/cairo/PathCairo.cpp b/WebCore/platform/graphics/cairo/PathCairo.cpp
index 03f1d10..195269d 100644
--- a/WebCore/platform/graphics/cairo/PathCairo.cpp
+++ b/WebCore/platform/graphics/cairo/PathCairo.cpp
@@ -5,6 +5,7 @@
2005, 2007 Apple Inc. All Rights reserved.
2007 Alp Toker <alp at atoker.com>
2008 Dirk Schulze <krit at webkit.org>
+ 2011 Igalia S.L.
This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Library General Public
@@ -151,10 +152,21 @@ void Path::addArc(const FloatPoint& p, float r, float sa, float ea, bool anticlo
return;
cairo_t* cr = platformPath()->context();
- if (anticlockwise)
- cairo_arc_negative(cr, p.x(), p.y(), r, sa, ea);
- else
- cairo_arc(cr, p.x(), p.y(), r, sa, ea);
+ float sweep = ea - sa;
+ const float twoPI = 2 * M_PI;
+ if (sweep <= -twoPI || sweep >= twoPI) {
+ if (anticlockwise)
+ cairo_arc_negative(cr, p.x(), p.y(), r, sa, sa - twoPI);
+ else
+ cairo_arc(cr, p.x(), p.y(), r, sa, sa + twoPI);
+ cairo_new_sub_path(cr);
+ cairo_arc(cr, p.x(), p.y(), r, ea, ea);
+ } else {
+ if (anticlockwise)
+ cairo_arc_negative(cr, p.x(), p.y(), r, sa, ea);
+ else
+ cairo_arc(cr, p.x(), p.y(), r, sa, ea);
+ }
}
void Path::addArcTo(const FloatPoint& p1, const FloatPoint& p2, float radius)
--
WebKit Debian packaging
More information about the Pkg-webkit-commits
mailing list