Title: [95193] trunk/Source/WebCore
Revision
95193
Author
commit-qu...@webkit.org
Date
2011-09-15 09:09:59 -0700 (Thu, 15 Sep 2011)

Log Message

Don't bother calculating dirty rect for accelerated 2D canvases.
https://bugs.webkit.org/show_bug.cgi?id=68158

Patch by Andreas Kling <kl...@webkit.org> on 2011-09-15
Reviewed by Kenneth Rohde Christiansen.

For accelerated CanvasRenderingContext2D, didDraw() simply calls out
to RenderLayer::contentChanged(). Move this to the top of didDraw()
so we don't waste time calculating a precise dirty rect.

* html/canvas/CanvasRenderingContext2D.cpp:
(WebCore::CanvasRenderingContext2D::didDraw):

Modified Paths

Diff

Modified: trunk/Source/WebCore/ChangeLog (95192 => 95193)


--- trunk/Source/WebCore/ChangeLog	2011-09-15 15:13:15 UTC (rev 95192)
+++ trunk/Source/WebCore/ChangeLog	2011-09-15 16:09:59 UTC (rev 95193)
@@ -1,3 +1,17 @@
+2011-09-15  Andreas Kling  <kl...@webkit.org>
+
+        Don't bother calculating dirty rect for accelerated 2D canvases.
+        https://bugs.webkit.org/show_bug.cgi?id=68158
+
+        Reviewed by Kenneth Rohde Christiansen.
+
+        For accelerated CanvasRenderingContext2D, didDraw() simply calls out
+        to RenderLayer::contentChanged(). Move this to the top of didDraw()
+        so we don't waste time calculating a precise dirty rect.
+
+        * html/canvas/CanvasRenderingContext2D.cpp:
+        (WebCore::CanvasRenderingContext2D::didDraw):
+
 2011-09-15  Brian Salomon  <bsalo...@google.com>
 
         [Skia/Chrome] Cleanup unneeded code now that GrGLInterface is used to set GL ctx per GL call.

Modified: trunk/Source/WebCore/html/canvas/CanvasRenderingContext2D.cpp (95192 => 95193)


--- trunk/Source/WebCore/html/canvas/CanvasRenderingContext2D.cpp	2011-09-15 15:13:15 UTC (rev 95192)
+++ trunk/Source/WebCore/html/canvas/CanvasRenderingContext2D.cpp	2011-09-15 16:09:59 UTC (rev 95193)
@@ -1621,6 +1621,17 @@
     if (!state().m_invertibleCTM)
         return;
 
+#if ENABLE(ACCELERATED_2D_CANVAS) && USE(ACCELERATED_COMPOSITING)
+    // If we are drawing to hardware and we have a composited layer, just call contentChanged().
+    if (isAccelerated()) {
+        RenderBox* renderBox = canvas()->renderBox();
+        if (renderBox && renderBox->hasLayer() && renderBox->layer()->hasAcceleratedCompositing()) {
+            renderBox->layer()->contentChanged(RenderLayer::CanvasChanged);
+            return;
+        }
+    }
+#endif
+
     FloatRect dirtyRect = r;
     if (options & CanvasDidDrawApplyTransform) {
         AffineTransform ctm = state().m_transform;
@@ -1641,14 +1652,7 @@
         // we'd have to keep the clip path around.
     }
 
-#if ENABLE(ACCELERATED_2D_CANVAS) && USE(ACCELERATED_COMPOSITING)
-    // If we are drawing to hardware and we have a composited layer, just call contentChanged().
-    RenderBox* renderBox = canvas()->renderBox();
-    if (isAccelerated() && renderBox && renderBox->hasLayer() && renderBox->layer()->hasAcceleratedCompositing())
-        renderBox->layer()->contentChanged(RenderLayer::CanvasChanged);
-    else
-#endif
-        canvas()->didDraw(dirtyRect);
+    canvas()->didDraw(dirtyRect);
 }
 
 GraphicsContext* CanvasRenderingContext2D::drawingContext() const
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
http://lists.webkit.org/mailman/listinfo.cgi/webkit-changes

Reply via email to