Title: [102783] trunk/Source/WebCore
Revision
102783
Author
senorbla...@chromium.org
Date
2011-12-14 08:45:51 -0800 (Wed, 14 Dec 2011)

Log Message

CSS Filters should support GPU acceleration
https://bugs.webkit.org/show_bug.cgi?id=74441

Reviewed by Darin Adler.

Will be covered by existing CSS filters tests, when run in GPU mode.

* rendering/FilterEffectRenderer.cpp:
(WebCore::FilterEffectRenderer::prepare):
* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::updateOrRemoveFilterEffect):

Modified Paths

Diff

Modified: trunk/Source/WebCore/ChangeLog (102782 => 102783)


--- trunk/Source/WebCore/ChangeLog	2011-12-14 16:37:19 UTC (rev 102782)
+++ trunk/Source/WebCore/ChangeLog	2011-12-14 16:45:51 UTC (rev 102783)
@@ -1,3 +1,17 @@
+2011-12-14  Stephen White  <senorbla...@chromium.org>
+
+        CSS Filters should support GPU acceleration
+        https://bugs.webkit.org/show_bug.cgi?id=74441
+
+        Reviewed by Darin Adler.
+
+        Will be covered by existing CSS filters tests, when run in GPU mode.
+
+        * rendering/FilterEffectRenderer.cpp:
+        (WebCore::FilterEffectRenderer::prepare):
+        * rendering/RenderLayer.cpp:
+        (WebCore::RenderLayer::updateOrRemoveFilterEffect):
+
 2011-12-14  Brian Salomon  <bsalo...@google.com>
 
         [CHROMIUM/SKIA] Handle put[Un/Pre]multipliedImageData conversions in Skia rather than ImageBuffer

Modified: trunk/Source/WebCore/rendering/FilterEffectRenderer.cpp (102782 => 102783)


--- trunk/Source/WebCore/rendering/FilterEffectRenderer.cpp	2011-12-14 16:37:19 UTC (rev 102782)
+++ trunk/Source/WebCore/rendering/FilterEffectRenderer.cpp	2011-12-14 16:45:51 UTC (rev 102783)
@@ -244,7 +244,7 @@
     // source image sizes set. We just need to attach the graphic
     // buffer if we have not yet done so.
     if (!m_graphicsBufferAttached) {
-        setSourceImage(ImageBuffer::create(IntSize(m_sourceDrawingRegion.width(), m_sourceDrawingRegion.height())));
+        setSourceImage(ImageBuffer::create(IntSize(m_sourceDrawingRegion.width(), m_sourceDrawingRegion.height()), ColorSpaceDeviceRGB, renderingMode()));
         m_graphicsBufferAttached = true;
     }
     m_sourceGraphic->clearResult();

Modified: trunk/Source/WebCore/rendering/RenderLayer.cpp (102782 => 102783)


--- trunk/Source/WebCore/rendering/RenderLayer.cpp	2011-12-14 16:37:19 UTC (rev 102782)
+++ trunk/Source/WebCore/rendering/RenderLayer.cpp	2011-12-14 16:45:51 UTC (rev 102783)
@@ -88,6 +88,7 @@
 #include "ScaleTransformOperation.h"
 #include "Scrollbar.h"
 #include "ScrollbarTheme.h"
+#include "Settings.h"
 #include "SourceGraphic.h"
 #include "TextStream.h"
 #include "TransformationMatrix.h"
@@ -4428,8 +4429,11 @@
 void RenderLayer::updateOrRemoveFilterEffect()
 {
     if (hasFilter()) {
-        if (!m_filter)
+        if (!m_filter) {
             m_filter = FilterEffectRenderer::create();
+            RenderingMode renderingMode = renderer()->frame()->page()->settings()->acceleratedFiltersEnabled() ? Accelerated : Unaccelerated;
+            m_filter->setRenderingMode(renderingMode);
+        }
 
         m_filter->build(renderer()->style()->filter(), toRenderBox(renderer())->borderBoxRect());
     } else {
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
http://lists.webkit.org/mailman/listinfo.cgi/webkit-changes

Reply via email to