[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