summaryrefslogtreecommitdiffstats
path: root/cc/blink/web_display_item_list_impl.cc
diff options
context:
space:
mode:
Diffstat (limited to 'cc/blink/web_display_item_list_impl.cc')
-rw-r--r--cc/blink/web_display_item_list_impl.cc17
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());