[SCM] WebKit Debian packaging branch, debian/experimental, updated. upstream/1.3.3-9427-gc2be6fc

jamesr at google.com jamesr at google.com
Wed Dec 22 11:25:26 UTC 2010


The following commit has been merged in the debian/experimental branch:
commit 3ec49ea58ba85b4ae13402bf1a36ca7b3c8ccc09
Author: jamesr at google.com <jamesr at google.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Date:   Fri Jul 23 00:18:58 2010 +0000

    2010-07-22  James Robinson  <jamesr at chromium.org>
    
            Reviewed by Simon Fraser.
    
            REGRESSION: box shadows on WebGL canvas elements repainted every frame
            https://bugs.webkit.org/show_bug.cgi?id=42852
    
            Avoid calling HTMLCanvasElement::willDraw() every time a WebGL canvas'
            contents update.  This call is only needed in the non-compositing
            rendering path.
    
            Covered by fast/canvas/webgl/canvas-test.html
    
            * html/canvas/WebGLRenderingContext.cpp:
            (WebCore::WebGLRenderingContext::markContextChanged):
            (WebCore::WebGLRenderingContext::paintRenderingResultsToCanvas):
    
    
    git-svn-id: http://svn.webkit.org/repository/webkit/trunk@63923 268f45cc-cd09-0410-ab3c-d52691b4dbfc

diff --git a/WebCore/ChangeLog b/WebCore/ChangeLog
index c504097..b75b7ee 100644
--- a/WebCore/ChangeLog
+++ b/WebCore/ChangeLog
@@ -1,3 +1,20 @@
+2010-07-22  James Robinson  <jamesr at chromium.org>
+
+        Reviewed by Simon Fraser.
+
+        REGRESSION: box shadows on WebGL canvas elements repainted every frame
+        https://bugs.webkit.org/show_bug.cgi?id=42852
+
+        Avoid calling HTMLCanvasElement::willDraw() every time a WebGL canvas'
+        contents update.  This call is only needed in the non-compositing
+        rendering path.
+
+        Covered by fast/canvas/webgl/canvas-test.html
+
+        * html/canvas/WebGLRenderingContext.cpp:
+        (WebCore::WebGLRenderingContext::markContextChanged):
+        (WebCore::WebGLRenderingContext::paintRenderingResultsToCanvas):
+
 2010-07-22  Patrick Gansterer  <paroga at paroga.com>
 
         Reviewed by Ojan Vafai.
diff --git a/WebCore/html/canvas/WebGLRenderingContext.cpp b/WebCore/html/canvas/WebGLRenderingContext.cpp
index f567ac8..fb17db9 100644
--- a/WebCore/html/canvas/WebGLRenderingContext.cpp
+++ b/WebCore/html/canvas/WebGLRenderingContext.cpp
@@ -141,18 +141,22 @@ void WebGLRenderingContext::markContextChanged()
     RenderBox* renderBox = canvas()->renderBox();
     if (renderBox && renderBox->hasLayer() && renderBox->layer()->hasAcceleratedCompositing())
         renderBox->layer()->rendererContentChanged();
+    else {
 #endif
-    if (!m_markedCanvasDirty) {
-        // Make sure the canvas's image buffer is allocated.
-        canvas()->buffer();
-        canvas()->willDraw(FloatRect(0, 0, canvas()->width(), canvas()->height()));
-        m_markedCanvasDirty = true;
+        if (!m_markedCanvasDirty)
+            canvas()->willDraw(FloatRect(0, 0, canvas()->width(), canvas()->height()));
+#if USE(ACCELERATED_COMPOSITING)
     }
+#endif
+    m_markedCanvasDirty = true;
 }
 
 bool WebGLRenderingContext::paintRenderingResultsToCanvas()
 {
     if (m_markedCanvasDirty) {
+        // FIXME: It should not be necessary to clear the image before doing a readback.
+        // Investigate why this is needed and remove if possible.
+        canvas()->buffer()->clearImage();
         m_markedCanvasDirty = false;
         m_context->paintRenderingResultsToCanvas(this);
         return true;

-- 
WebKit Debian packaging



More information about the Pkg-webkit-commits mailing list