summaryrefslogtreecommitdiffstats
path: root/webkit
diff options
context:
space:
mode:
authorajuma@chromium.org <ajuma@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-09-26 04:41:48 +0000
committerajuma@chromium.org <ajuma@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-09-26 04:41:48 +0000
commit1dc7943effc15784acb0050a0402fe98e7547a2e (patch)
tree40ca6ee1c7995e356968bf3608d4e76194d00363 /webkit
parent152f9ae8bdf8e828d016d9d1e58530bc8311bb70 (diff)
downloadchromium_src-1dc7943effc15784acb0050a0402fe98e7547a2e.zip
chromium_src-1dc7943effc15784acb0050a0402fe98e7547a2e.tar.gz
chromium_src-1dc7943effc15784acb0050a0402fe98e7547a2e.tar.bz2
Add support for converting cc::FilterOperations into an SkImageFilter
This defines a new type of cc::FilterOperation for reference filters, and defines a method (RenderSurfaceFilters::BuildImageFilter) that builds an SkImageFilter from a given cc::FilterOperations. This also removes cc::Layer::SetFilter and cc::LayerImpl::SetFilter. These were only used when we had a reference filter, but they are no longer needed now that reference filters can be included in FilterOperations. BUG=181613 Review URL: https://codereview.chromium.org/21154002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@225329 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'webkit')
-rw-r--r--webkit/renderer/compositor_bindings/web_filter_operations_impl.cc7
-rw-r--r--webkit/renderer/compositor_bindings/web_filter_operations_impl.h1
-rw-r--r--webkit/renderer/compositor_bindings/web_layer_impl.cc8
3 files changed, 15 insertions, 1 deletions
diff --git a/webkit/renderer/compositor_bindings/web_filter_operations_impl.cc b/webkit/renderer/compositor_bindings/web_filter_operations_impl.cc
index 76f22d7..6fe6e27 100644
--- a/webkit/renderer/compositor_bindings/web_filter_operations_impl.cc
+++ b/webkit/renderer/compositor_bindings/web_filter_operations_impl.cc
@@ -5,6 +5,7 @@
#include "webkit/renderer/compositor_bindings/web_filter_operations_impl.h"
#include "base/basictypes.h"
+#include "skia/ext/refptr.h"
#include "third_party/WebKit/public/platform/WebColor.h"
#include "third_party/WebKit/public/platform/WebPoint.h"
#include "third_party/skia/include/core/SkScalar.h"
@@ -79,6 +80,12 @@ void WebFilterOperationsImpl::appendSaturatingBrightnessFilter(float amount) {
cc::FilterOperation::CreateSaturatingBrightnessFilter(amount));
}
+void WebFilterOperationsImpl::appendReferenceFilter(
+ SkImageFilter* image_filter) {
+ filter_operations_.Append(
+ cc::FilterOperation::CreateReferenceFilter(skia::SharePtr(image_filter)));
+}
+
void WebFilterOperationsImpl::clear() {
filter_operations_.Clear();
}
diff --git a/webkit/renderer/compositor_bindings/web_filter_operations_impl.h b/webkit/renderer/compositor_bindings/web_filter_operations_impl.h
index 35a6479..1a14f99 100644
--- a/webkit/renderer/compositor_bindings/web_filter_operations_impl.h
+++ b/webkit/renderer/compositor_bindings/web_filter_operations_impl.h
@@ -34,6 +34,7 @@ class WebFilterOperationsImpl : public WebKit::WebFilterOperations {
virtual void appendColorMatrixFilter(SkScalar matrix[20]);
virtual void appendZoomFilter(float amount, int inset);
virtual void appendSaturatingBrightnessFilter(float amount);
+ virtual void appendReferenceFilter(SkImageFilter* image_filter);
virtual void clear();
diff --git a/webkit/renderer/compositor_bindings/web_layer_impl.cc b/webkit/renderer/compositor_bindings/web_layer_impl.cc
index f2a3cde..c0b56b8 100644
--- a/webkit/renderer/compositor_bindings/web_layer_impl.cc
+++ b/webkit/renderer/compositor_bindings/web_layer_impl.cc
@@ -178,8 +178,14 @@ void WebLayerImpl::setBackgroundFilters(const WebFilterOperations& filters) {
layer_->SetBackgroundFilters(filters_impl.AsFilterOperations());
}
+// TODO(ajuma): Remove this once the Blink CL that stops calling this lands.
void WebLayerImpl::setFilter(SkImageFilter* filter) {
- layer_->SetFilter(skia::SharePtr(filter));
+ cc::FilterOperations filters;
+ if (filter) {
+ filters.Append(
+ cc::FilterOperation::CreateReferenceFilter(skia::SharePtr(filter)));
+ }
+ layer_->SetFilters(filters);
}
void WebLayerImpl::setCompositingReasons(