[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:34:56 UTC 2010
The following commit has been merged in the debian/experimental branch:
commit bc0ed247fc5aea53e8e64c88b917c8f474a6d5a8
Author: jamesr at google.com <jamesr at google.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Date: Thu Jul 29 21:35:23 2010 +0000
2010-07-29 James Robinson <jamesr at chromium.org>
Reviewed by Simon Fraser.
Ask a canvas' rendering context if it is accelerated instead tying it directly to webgl
https://bugs.webkit.org/show_bug.cgi?id=43206
This unifies the logic for whether a canvas is accelerated or not into one place
and makes it easier to expand the logic in the future to, for example, cover some
2d canvases.
Just a refactoring, no change in behavior so no new tests.
* html/canvas/CanvasRenderingContext.h:
(WebCore::CanvasRenderingContext::isAccelerated):
* html/canvas/WebGLRenderingContext.h:
(WebCore::WebGLRenderingContext::isAccelerated):
* rendering/RenderHTMLCanvas.cpp:
(WebCore::RenderHTMLCanvas::requiresLayer):
* rendering/RenderLayerCompositor.cpp:
(WebCore::RenderLayerCompositor::requiresCompositingForCanvas):
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@64308 268f45cc-cd09-0410-ab3c-d52691b4dbfc
diff --git a/WebCore/ChangeLog b/WebCore/ChangeLog
index 951bd6a..1c10d2a 100644
--- a/WebCore/ChangeLog
+++ b/WebCore/ChangeLog
@@ -1,3 +1,25 @@
+2010-07-29 James Robinson <jamesr at chromium.org>
+
+ Reviewed by Simon Fraser.
+
+ Ask a canvas' rendering context if it is accelerated instead tying it directly to webgl
+ https://bugs.webkit.org/show_bug.cgi?id=43206
+
+ This unifies the logic for whether a canvas is accelerated or not into one place
+ and makes it easier to expand the logic in the future to, for example, cover some
+ 2d canvases.
+
+ Just a refactoring, no change in behavior so no new tests.
+
+ * html/canvas/CanvasRenderingContext.h:
+ (WebCore::CanvasRenderingContext::isAccelerated):
+ * html/canvas/WebGLRenderingContext.h:
+ (WebCore::WebGLRenderingContext::isAccelerated):
+ * rendering/RenderHTMLCanvas.cpp:
+ (WebCore::RenderHTMLCanvas::requiresLayer):
+ * rendering/RenderLayerCompositor.cpp:
+ (WebCore::RenderLayerCompositor::requiresCompositingForCanvas):
+
2010-07-29 Anders Carlsson <andersca at apple.com>
Reviewed by Sam Weinig.
diff --git a/WebCore/html/canvas/CanvasRenderingContext.h b/WebCore/html/canvas/CanvasRenderingContext.h
index f752377..2ee1693 100644
--- a/WebCore/html/canvas/CanvasRenderingContext.h
+++ b/WebCore/html/canvas/CanvasRenderingContext.h
@@ -46,6 +46,7 @@ namespace WebCore {
virtual bool is2d() const { return false; }
virtual bool is3d() const { return false; }
+ virtual bool isAccelerated() const { return false; }
private:
HTMLCanvasElement* m_canvas;
diff --git a/WebCore/html/canvas/WebGLRenderingContext.h b/WebCore/html/canvas/WebGLRenderingContext.h
index fa9ffdb..017570b 100644
--- a/WebCore/html/canvas/WebGLRenderingContext.h
+++ b/WebCore/html/canvas/WebGLRenderingContext.h
@@ -58,6 +58,7 @@ class WebKitCSSMatrix;
virtual ~WebGLRenderingContext();
virtual bool is3d() const { return true; }
+ virtual bool isAccelerated() const { return true; }
// Helper to return the size in bytes of OpenGL data types
// like GL_FLOAT, GL_INT, etc.
diff --git a/WebCore/rendering/RenderHTMLCanvas.cpp b/WebCore/rendering/RenderHTMLCanvas.cpp
index 8c17a0e..c89495b 100644
--- a/WebCore/rendering/RenderHTMLCanvas.cpp
+++ b/WebCore/rendering/RenderHTMLCanvas.cpp
@@ -26,6 +26,7 @@
#include "config.h"
#include "RenderHTMLCanvas.h"
+#include "CanvasRenderingContext.h"
#include "Document.h"
#include "GraphicsContext.h"
#include "HTMLCanvasElement.h"
@@ -48,12 +49,8 @@ bool RenderHTMLCanvas::requiresLayer() const
if (RenderReplaced::requiresLayer())
return true;
-#if ENABLE(3D_CANVAS)
HTMLCanvasElement* canvas = static_cast<HTMLCanvasElement*>(node());
- return canvas && canvas->is3D();
-#else
- return false;
-#endif
+ return canvas && canvas->renderingContext() && canvas->renderingContext()->isAccelerated();
}
void RenderHTMLCanvas::paintReplaced(PaintInfo& paintInfo, int tx, int ty)
diff --git a/WebCore/rendering/RenderLayerCompositor.cpp b/WebCore/rendering/RenderLayerCompositor.cpp
index 51f70bb..7798dfb 100644
--- a/WebCore/rendering/RenderLayerCompositor.cpp
+++ b/WebCore/rendering/RenderLayerCompositor.cpp
@@ -29,6 +29,7 @@
#include "RenderLayerCompositor.h"
#include "AnimationController.h"
+#include "CanvasRenderingContext.h"
#include "CSSPropertyNames.h"
#include "Chrome.h"
#include "ChromeClient.h"
@@ -1185,14 +1186,10 @@ bool RenderLayerCompositor::requiresCompositingForVideo(RenderObject* renderer)
bool RenderLayerCompositor::requiresCompositingForCanvas(RenderObject* renderer) const
{
-#if ENABLE(3D_CANVAS)
if (renderer->isCanvas()) {
HTMLCanvasElement* canvas = static_cast<HTMLCanvasElement*>(renderer->node());
- return canvas->is3D();
+ return canvas->renderingContext() && canvas->renderingContext()->isAccelerated();
}
-#else
- UNUSED_PARAM(renderer);
-#endif
return false;
}
--
WebKit Debian packaging
More information about the Pkg-webkit-commits
mailing list