[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