Title: [121987] trunk/Source/WebCore
- Revision
- 121987
- Author
- commit-qu...@webkit.org
- Date
- 2012-07-06 10:47:34 -0700 (Fri, 06 Jul 2012)
Log Message
Drawing to accelerated 2D canvas causes compositor to recompute layer tree
https://bugs.webkit.org/show_bug.cgi?id=90630
Patch by Justin Novosad <ju...@chromium.org> on 2012-07-06
Reviewed by Simon Fraser.
No new tests: covered by existing canvas/compositing layout tests
Before this change, there was no distinction between canvas changes
that require recomputing the compositor tree and canvas changes that
only require re-display. The new CanvasPixelsChanged member of enum
ContentChangeType requests re-display without re-layout.
* html/canvas/CanvasRenderingContext2D.cpp:
(WebCore::CanvasRenderingContext2D::didDraw):
* rendering/RenderBoxModelObject.h:
* rendering/RenderLayerBacking.cpp:
(WebCore::RenderLayerBacking::contentChanged):
Modified Paths
Diff
Modified: trunk/Source/WebCore/ChangeLog (121986 => 121987)
--- trunk/Source/WebCore/ChangeLog 2012-07-06 17:39:20 UTC (rev 121986)
+++ trunk/Source/WebCore/ChangeLog 2012-07-06 17:47:34 UTC (rev 121987)
@@ -1,3 +1,23 @@
+2012-07-06 Justin Novosad <ju...@chromium.org>
+
+ Drawing to accelerated 2D canvas causes compositor to recompute layer tree
+ https://bugs.webkit.org/show_bug.cgi?id=90630
+
+ Reviewed by Simon Fraser.
+
+ No new tests: covered by existing canvas/compositing layout tests
+
+ Before this change, there was no distinction between canvas changes
+ that require recomputing the compositor tree and canvas changes that
+ only require re-display. The new CanvasPixelsChanged member of enum
+ ContentChangeType requests re-display without re-layout.
+
+ * html/canvas/CanvasRenderingContext2D.cpp:
+ (WebCore::CanvasRenderingContext2D::didDraw):
+ * rendering/RenderBoxModelObject.h:
+ * rendering/RenderLayerBacking.cpp:
+ (WebCore::RenderLayerBacking::contentChanged):
+
2012-07-06 Pavel Feldman <pfeld...@chromium.org>
Web Inspector: get rid of this._lastMarkedRange in TextEditor.
Modified: trunk/Source/WebCore/html/canvas/CanvasRenderingContext2D.cpp (121986 => 121987)
--- trunk/Source/WebCore/html/canvas/CanvasRenderingContext2D.cpp 2012-07-06 17:39:20 UTC (rev 121986)
+++ trunk/Source/WebCore/html/canvas/CanvasRenderingContext2D.cpp 2012-07-06 17:47:34 UTC (rev 121987)
@@ -1768,7 +1768,7 @@
if (isAccelerated()) {
RenderBox* renderBox = canvas()->renderBox();
if (renderBox && renderBox->hasAcceleratedCompositing()) {
- renderBox->contentChanged(CanvasChanged);
+ renderBox->contentChanged(CanvasPixelsChanged);
canvas()->clearCopiedImage();
return;
}
Modified: trunk/Source/WebCore/rendering/RenderBoxModelObject.h (121986 => 121987)
--- trunk/Source/WebCore/rendering/RenderBoxModelObject.h 2012-07-06 17:39:20 UTC (rev 121986)
+++ trunk/Source/WebCore/rendering/RenderBoxModelObject.h 2012-07-06 17:47:34 UTC (rev 121987)
@@ -44,6 +44,7 @@
ImageChanged,
MaskImageChanged,
CanvasChanged,
+ CanvasPixelsChanged,
VideoChanged,
FullScreenChanged
};
Modified: trunk/Source/WebCore/rendering/RenderLayerBacking.cpp (121986 => 121987)
--- trunk/Source/WebCore/rendering/RenderLayerBacking.cpp 2012-07-06 17:39:20 UTC (rev 121986)
+++ trunk/Source/WebCore/rendering/RenderLayerBacking.cpp 2012-07-06 17:47:34 UTC (rev 121987)
@@ -1033,7 +1033,7 @@
}
#if ENABLE(WEBGL) || ENABLE(ACCELERATED_2D_CANVAS)
- if ((changeType == CanvasChanged) && isAcceleratedCanvas(renderer())) {
+ if ((changeType == CanvasChanged || changeType == CanvasPixelsChanged) && isAcceleratedCanvas(renderer())) {
m_graphicsLayer->setContentsNeedsDisplay();
return;
}
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
http://lists.webkit.org/mailman/listinfo.cgi/webkit-changes