| Index: cc/resources/filter_display_item.cc
|
| diff --git a/cc/resources/filter_display_item.cc b/cc/resources/filter_display_item.cc
|
| index bfdd4257dc36eea4f7c6d915c73a67516226840e..31abf282a9a643c1dcf94bc4d359313551ab6a9f 100644
|
| --- a/cc/resources/filter_display_item.cc
|
| +++ b/cc/resources/filter_display_item.cc
|
| @@ -6,6 +6,8 @@
|
|
|
| #include "base/strings/stringprintf.h"
|
| #include "base/trace_event/trace_event_argument.h"
|
| +#include "cc/output/render_surface_filters.h"
|
| +#include "skia/ext/refptr.h"
|
| #include "third_party/skia/include/core/SkCanvas.h"
|
| #include "third_party/skia/include/core/SkImageFilter.h"
|
| #include "third_party/skia/include/core/SkPaint.h"
|
| @@ -14,9 +16,9 @@
|
|
|
| namespace cc {
|
|
|
| -FilterDisplayItem::FilterDisplayItem(skia::RefPtr<SkImageFilter> filter,
|
| +FilterDisplayItem::FilterDisplayItem(const FilterOperations& filters,
|
| gfx::RectF bounds)
|
| - : filter_(filter), bounds_(bounds) {
|
| + : filters_(filters), bounds_(bounds) {
|
| }
|
|
|
| FilterDisplayItem::~FilterDisplayItem() {
|
| @@ -25,14 +27,18 @@ FilterDisplayItem::~FilterDisplayItem() {
|
| void FilterDisplayItem::Raster(SkCanvas* canvas,
|
| SkDrawPictureCallback* callback) const {
|
| canvas->save();
|
| - SkRect boundaries;
|
| - filter_->computeFastBounds(gfx::RectFToSkRect(bounds_), &boundaries);
|
| canvas->translate(bounds_.x(), bounds_.y());
|
| - boundaries.offset(-bounds_.x(), -bounds_.y());
|
| +
|
| + skia::RefPtr<SkImageFilter> image_filter =
|
| + RenderSurfaceFilters::BuildImageFilter(
|
| + filters_, gfx::SizeF(bounds_.width(), bounds_.height()));
|
| + SkRect boundaries;
|
| + image_filter->computeFastBounds(
|
| + SkRect::MakeWH(bounds_.width(), bounds_.height()), &boundaries);
|
|
|
| SkPaint paint;
|
| paint.setXfermodeMode(SkXfermode::kSrcOver_Mode);
|
| - paint.setImageFilter(filter_.get());
|
| + paint.setImageFilter(image_filter.get());
|
| canvas->saveLayer(&boundaries, &paint);
|
|
|
| canvas->translate(-bounds_.x(), -bounds_.y());
|
| @@ -50,7 +56,8 @@ size_t FilterDisplayItem::PictureMemoryUsage() const {
|
| return sizeof(skia::RefPtr<SkImageFilter>) + sizeof(gfx::RectF);
|
| }
|
|
|
| -void FilterDisplayItem::AsValueInto(base::debug::TracedValue* array) const {
|
| +void FilterDisplayItem::AsValueInto(
|
| + base::trace_event::TracedValue* array) const {
|
| array->AppendString(base::StringPrintf("FilterDisplayItem bounds: [%s]",
|
| bounds_.ToString().c_str()));
|
| }
|
| @@ -79,7 +86,8 @@ size_t EndFilterDisplayItem::PictureMemoryUsage() const {
|
| return 0;
|
| }
|
|
|
| -void EndFilterDisplayItem::AsValueInto(base::debug::TracedValue* array) const {
|
| +void EndFilterDisplayItem::AsValueInto(
|
| + base::trace_event::TracedValue* array) const {
|
| array->AppendString("EndFilterDisplayItem");
|
| }
|
|
|
|
|