diff options
Diffstat (limited to 'cc/blink/web_display_item_list_impl.cc')
-rw-r--r-- | cc/blink/web_display_item_list_impl.cc | 17 |
1 files changed, 16 insertions, 1 deletions
diff --git a/cc/blink/web_display_item_list_impl.cc b/cc/blink/web_display_item_list_impl.cc index fdd05df..879857c 100644 --- a/cc/blink/web_display_item_list_impl.cc +++ b/cc/blink/web_display_item_list_impl.cc @@ -7,6 +7,7 @@ #include <vector> #include "cc/blink/web_blend_mode.h" +#include "cc/blink/web_filter_operations_impl.h" #include "cc/resources/clip_display_item.h" #include "cc/resources/clip_path_display_item.h" #include "cc/resources/drawing_display_item.h" @@ -95,12 +96,26 @@ void WebDisplayItemListImpl::appendEndTransparencyItem() { display_item_list_->AppendItem(cc::EndTransparencyDisplayItem::Create()); } +#if FILTER_DISPLAY_ITEM_USES_FILTER_OPERATIONS +void WebDisplayItemListImpl::appendFilterItem( + const blink::WebFilterOperations& filters, + const blink::WebFloatRect& bounds) { + const WebFilterOperationsImpl& filters_impl = + static_cast<const WebFilterOperationsImpl&>(filters); + display_item_list_->AppendItem( + cc::FilterDisplayItem::Create(filters_impl.AsFilterOperations(), bounds)); +} +#else void WebDisplayItemListImpl::appendFilterItem( SkImageFilter* filter, const blink::WebFloatRect& bounds) { + cc::FilterOperations filter_operations; + filter_operations.Append( + cc::FilterOperation::CreateReferenceFilter(skia::SharePtr(filter))); display_item_list_->AppendItem( - cc::FilterDisplayItem::Create(skia::SharePtr(filter), bounds)); + cc::FilterDisplayItem::Create(filter_operations, bounds)); } +#endif void WebDisplayItemListImpl::appendEndFilterItem() { display_item_list_->AppendItem(cc::EndFilterDisplayItem::Create()); |