Index: cc/blink/web_display_item_list_impl.cc |
diff --git a/cc/blink/web_display_item_list_impl.cc b/cc/blink/web_display_item_list_impl.cc |
index fdd05df63ab80407c5c19a84e7dfefe90e00fd2b..dc1d4309df7a599938015438cf5c53b2398ffbb7 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" |
@@ -32,6 +33,11 @@ scoped_refptr<cc::DisplayItemList> WebDisplayItemListImpl::ToDisplayItemList() { |
return display_item_list_; |
} |
+void WebDisplayItemListImpl::appendDrawingItem(const SkPicture* picture) { |
+ display_item_list_->AppendItem(cc::DrawingDisplayItem::Create( |
+ skia::SharePtr(const_cast<SkPicture*>(picture)), gfx::PointF(0, 0))); |
+} |
+ |
void WebDisplayItemListImpl::appendDrawingItem( |
SkPicture* picture, |
const blink::WebFloatPoint& location) { |
@@ -95,12 +101,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()); |