| Index: third_party/WebKit/Source/platform/graphics/filters/SkiaImageFilterBuilder.cpp
|
| diff --git a/third_party/WebKit/Source/platform/graphics/filters/SkiaImageFilterBuilder.cpp b/third_party/WebKit/Source/platform/graphics/filters/SkiaImageFilterBuilder.cpp
|
| index b57cc40f185f4ada1b3a1f7af808c176fe72b1c9..a38eca049ee66af3e1507f51f1d0dd2470a3291a 100644
|
| --- a/third_party/WebKit/Source/platform/graphics/filters/SkiaImageFilterBuilder.cpp
|
| +++ b/third_party/WebKit/Source/platform/graphics/filters/SkiaImageFilterBuilder.cpp
|
| @@ -32,7 +32,8 @@
|
| #include "platform/graphics/BoxReflection.h"
|
| #include "platform/graphics/filters/FilterEffect.h"
|
| #include "platform/graphics/skia/SkiaUtils.h"
|
| -#include "third_party/skia/include/core/SkPicture.h"
|
| +#include "skia/ext/cdl_canvas.h"
|
| +#include "skia/ext/cdl_picture.h"
|
| #include "third_party/skia/include/effects/SkImageSource.h"
|
| #include "third_party/skia/include/effects/SkOffsetImageFilter.h"
|
| #include "third_party/skia/include/effects/SkPictureImageFilter.h"
|
| @@ -99,11 +100,12 @@ sk_sp<SkImageFilter> transformColorSpace(sk_sp<SkImageFilter> input,
|
| std::move(input));
|
| }
|
|
|
| -void buildSourceGraphic(FilterEffect* sourceGraphic, sk_sp<SkPicture> picture) {
|
| +void buildSourceGraphic(FilterEffect* sourceGraphic,
|
| + sk_sp<CdlPicture> picture) {
|
| ASSERT(picture);
|
| SkRect cullRect = picture->cullRect();
|
| sk_sp<SkImageFilter> filter =
|
| - SkPictureImageFilter::Make(std::move(picture), cullRect);
|
| + SkPictureImageFilter::Make(ToSkPicture(picture.get()), cullRect);
|
| populateSourceGraphicImageFilters(sourceGraphic, std::move(filter),
|
| sourceGraphic->operatingColorSpace());
|
| }
|
| @@ -114,7 +116,7 @@ static float kMaxMaskBufferSize =
|
| sk_sp<SkImageFilter> buildBoxReflectFilter(const BoxReflection& reflection,
|
| sk_sp<SkImageFilter> input) {
|
| sk_sp<SkImageFilter> maskedInput;
|
| - if (SkPicture* maskPicture = reflection.mask()) {
|
| + if (CdlPicture* maskPicture = reflection.mask()) {
|
| // Since SkPictures can't be serialized to the browser process, first raster
|
| // the mask to a bitmap, then encode it in an SkImageSource, which can be
|
| // serialized.
|
| @@ -125,7 +127,8 @@ sk_sp<SkImageFilter> buildBoxReflectFilter(const BoxReflection& reflection,
|
| kMaxMaskBufferSize) {
|
| bitmap.allocPixels(
|
| SkImageInfo::MakeN32Premul(cullRect.width(), cullRect.height()));
|
| - SkCanvas canvas(bitmap);
|
| + SkCanvas sk_canvas(bitmap);
|
| + CdlPassThroughCanvas canvas(&sk_canvas);
|
| canvas.clear(SK_ColorTRANSPARENT);
|
| canvas.translate(-cullRect.x(), -cullRect.y());
|
| canvas.drawPicture(maskPicture);
|
| @@ -147,7 +150,8 @@ sk_sp<SkImageFilter> buildBoxReflectFilter(const BoxReflection& reflection,
|
| SkImageFilter::CropRect cropRect(maskPicture->cullRect());
|
| maskedInput = SkXfermodeImageFilter::Make(
|
| SkBlendMode::kSrcOver,
|
| - SkPictureImageFilter::Make(sk_ref_sp(maskPicture)), input, &cropRect);
|
| + SkPictureImageFilter::Make(ToSkPicture(maskPicture)), input,
|
| + &cropRect);
|
| }
|
| } else {
|
| maskedInput = input;
|
|
|