diff options
author | ajuma@chromium.org <ajuma@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-09-26 04:41:48 +0000 |
---|---|---|
committer | ajuma@chromium.org <ajuma@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-09-26 04:41:48 +0000 |
commit | 1dc7943effc15784acb0050a0402fe98e7547a2e (patch) | |
tree | 40ca6ee1c7995e356968bf3608d4e76194d00363 /webkit | |
parent | 152f9ae8bdf8e828d016d9d1e58530bc8311bb70 (diff) | |
download | chromium_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')
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( |