[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