From a144ac64329978c258faadf3bc484cf4ae6c5d0d Mon Sep 17 00:00:00 2001 From: John Reck Date: Wed, 14 Mar 2012 21:06:41 -0700 Subject: Canvas on a texture Change-Id: I841b3e021298738c91701068992798a55290a520 --- Source/WebCore/html/HTMLCanvasElement.cpp | 6 ++++++ Source/WebCore/html/HTMLCanvasElement.h | 4 ++++ 2 files changed, 10 insertions(+) (limited to 'Source/WebCore/html') diff --git a/Source/WebCore/html/HTMLCanvasElement.cpp b/Source/WebCore/html/HTMLCanvasElement.cpp index 9f51f10..e67cbf9 100644 --- a/Source/WebCore/html/HTMLCanvasElement.cpp +++ b/Source/WebCore/html/HTMLCanvasElement.cpp @@ -45,6 +45,7 @@ #include "MIMETypeRegistry.h" #include "Page.h" #include "RenderHTMLCanvas.h" +#include "RenderLayer.h" #include "Settings.h" #include #include @@ -225,6 +226,11 @@ void HTMLCanvasElement::didDraw(const FloatRect& rect) return; m_dirtyRect.unite(r); +#if PLATFORM(ANDROID) + // We handle invals ourselves and don't want webkit to repaint if we + // have put the canvas on a layer + if (!ro->hasLayer()) +#endif ro->repaintRectangle(enclosingIntRect(m_dirtyRect)); } diff --git a/Source/WebCore/html/HTMLCanvasElement.h b/Source/WebCore/html/HTMLCanvasElement.h index 207c384..e485835 100644 --- a/Source/WebCore/html/HTMLCanvasElement.h +++ b/Source/WebCore/html/HTMLCanvasElement.h @@ -128,6 +128,10 @@ public: void makeRenderingResultsAvailable(); +#if PLATFORM(ANDROID) + void clearDirtyRect() { m_dirtyRect = FloatRect(); } +#endif + private: HTMLCanvasElement(const QualifiedName&, Document*); -- cgit v1.1