Chromium Code Reviews| Index: cc/output/render_surface_filters.cc |
| diff --git a/cc/output/render_surface_filters.cc b/cc/output/render_surface_filters.cc |
| index de3c7fc7ec43dbd9e83bf263e2144d2a437b0a04..62ac888229ce2fc7ba1d3c1eb655ce58ece303d8 100644 |
| --- a/cc/output/render_surface_filters.cc |
| +++ b/cc/output/render_surface_filters.cc |
| @@ -10,7 +10,6 @@ |
| #include "cc/output/filter_operation.h" |
| #include "cc/output/filter_operations.h" |
| -#include "skia/ext/refptr.h" |
| #include "third_party/skia/include/core/SkImageFilter.h" |
| #include "third_party/skia/include/effects/SkAlphaThresholdFilter.h" |
| #include "third_party/skia/include/effects/SkBlurImageFilter.h" |
| @@ -145,130 +144,126 @@ void GetSepiaMatrix(float amount, SkScalar matrix[20]) { |
| matrix[18] = 1.f; |
| } |
| -skia::RefPtr<SkImageFilter> CreateMatrixImageFilter( |
| - const SkScalar matrix[20], |
| - const skia::RefPtr<SkImageFilter>& input) { |
| - sk_sp<SkColorFilter> color_filter = |
| - SkColorFilter::MakeMatrixFilterRowMajor255(matrix); |
| - return skia::AdoptRef( |
| - SkColorFilterImageFilter::Create(color_filter.get(), input.get())); |
| +sk_sp<SkImageFilter> CreateMatrixImageFilter(const SkScalar matrix[20], |
| + sk_sp<SkImageFilter> input) { |
| + return SkColorFilterImageFilter::Make( |
| + SkColorFilter::MakeMatrixFilterRowMajor255(matrix), input); |
|
f(malita)
2016/04/21 15:45:47
move(input)
tomhudson
2016/04/25 20:20:50
Done.
|
| } |
| } // namespace |
| -skia::RefPtr<SkImageFilter> RenderSurfaceFilters::BuildImageFilter( |
| +sk_sp<SkImageFilter> RenderSurfaceFilters::BuildImageFilter( |
| const FilterOperations& filters, |
| const gfx::SizeF& size) { |
| - skia::RefPtr<SkImageFilter> image_filter; |
| + sk_sp<SkImageFilter> image_filter; |
| SkScalar matrix[20]; |
| for (size_t i = 0; i < filters.size(); ++i) { |
| const FilterOperation& op = filters.at(i); |
| switch (op.type()) { |
| case FilterOperation::GRAYSCALE: |
| GetGrayscaleMatrix(1.f - op.amount(), matrix); |
| - image_filter = CreateMatrixImageFilter(matrix, image_filter); |
| + image_filter = CreateMatrixImageFilter(matrix, std::move(image_filter)); |
| break; |
| case FilterOperation::SEPIA: |
| GetSepiaMatrix(1.f - op.amount(), matrix); |
| - image_filter = CreateMatrixImageFilter(matrix, image_filter); |
| + image_filter = CreateMatrixImageFilter(matrix, std::move(image_filter)); |
| break; |
| case FilterOperation::SATURATE: |
| GetSaturateMatrix(op.amount(), matrix); |
| - image_filter = CreateMatrixImageFilter(matrix, image_filter); |
| + image_filter = CreateMatrixImageFilter(matrix, std::move(image_filter)); |
| break; |
| case FilterOperation::HUE_ROTATE: |
| GetHueRotateMatrix(op.amount(), matrix); |
| - image_filter = CreateMatrixImageFilter(matrix, image_filter); |
| + image_filter = CreateMatrixImageFilter(matrix, std::move(image_filter)); |
| break; |
| case FilterOperation::INVERT: |
| GetInvertMatrix(op.amount(), matrix); |
| - image_filter = CreateMatrixImageFilter(matrix, image_filter); |
| + image_filter = CreateMatrixImageFilter(matrix, std::move(image_filter)); |
| break; |
| case FilterOperation::OPACITY: |
| GetOpacityMatrix(op.amount(), matrix); |
| - image_filter = CreateMatrixImageFilter(matrix, image_filter); |
| + image_filter = CreateMatrixImageFilter(matrix, std::move(image_filter)); |
| break; |
| case FilterOperation::BRIGHTNESS: |
| GetBrightnessMatrix(op.amount(), matrix); |
| - image_filter = CreateMatrixImageFilter(matrix, image_filter); |
| + image_filter = CreateMatrixImageFilter(matrix, std::move(image_filter)); |
| break; |
| case FilterOperation::CONTRAST: |
| GetContrastMatrix(op.amount(), matrix); |
| - image_filter = CreateMatrixImageFilter(matrix, image_filter); |
| + image_filter = CreateMatrixImageFilter(matrix, std::move(image_filter)); |
| break; |
| case FilterOperation::BLUR: |
| - image_filter = skia::AdoptRef(SkBlurImageFilter::Create( |
| - op.amount(), op.amount(), image_filter.get())); |
| + image_filter = SkBlurImageFilter::Make(op.amount(), op.amount(), |
| + std::move(image_filter)); |
| break; |
| case FilterOperation::DROP_SHADOW: |
| - image_filter = skia::AdoptRef(SkDropShadowImageFilter::Create( |
| + image_filter = SkDropShadowImageFilter::Make( |
| SkIntToScalar(op.drop_shadow_offset().x()), |
| SkIntToScalar(op.drop_shadow_offset().y()), |
| - SkIntToScalar(op.amount()), |
| - SkIntToScalar(op.amount()), |
| + SkIntToScalar(op.amount()), SkIntToScalar(op.amount()), |
| op.drop_shadow_color(), |
| SkDropShadowImageFilter::kDrawShadowAndForeground_ShadowMode, |
| - image_filter.get())); |
| + std::move(image_filter)); |
| break; |
| case FilterOperation::COLOR_MATRIX: |
| - image_filter = CreateMatrixImageFilter(op.matrix(), image_filter); |
| + image_filter = |
| + CreateMatrixImageFilter(op.matrix(), std::move(image_filter)); |
| break; |
| case FilterOperation::ZOOM: { |
| - skia::RefPtr<SkImageFilter> zoom_filter = |
| - skia::AdoptRef(SkMagnifierImageFilter::Create( |
| - SkRect::MakeXYWH( |
| - (size.width() - (size.width() / op.amount())) / 2.f, |
| - (size.height() - (size.height() / op.amount())) / 2.f, |
| - size.width() / op.amount(), |
| - size.height() / op.amount()), |
| - op.zoom_inset())); |
| - if (image_filter.get()) { |
| + sk_sp<SkImageFilter> zoom_filter(SkMagnifierImageFilter::Make( |
| + SkRect::MakeXYWH( |
| + (size.width() - (size.width() / op.amount())) / 2.f, |
| + (size.height() - (size.height() / op.amount())) / 2.f, |
| + size.width() / op.amount(), size.height() / op.amount()), |
| + op.zoom_inset(), nullptr)); |
| + if (image_filter) { |
| // TODO(ajuma): When there's a 1-input version of |
| // SkMagnifierImageFilter, use that to handle the input filter |
| // instead of using an SkComposeImageFilter. |
| - image_filter = skia::AdoptRef(SkComposeImageFilter::Create( |
| - zoom_filter.get(), image_filter.get())); |
| + image_filter = SkComposeImageFilter::Make(std::move(zoom_filter), |
| + std::move(image_filter)); |
| } else { |
| - image_filter = zoom_filter; |
| + image_filter = std::move(zoom_filter); |
| } |
| break; |
| } |
| case FilterOperation::SATURATING_BRIGHTNESS: |
| GetSaturatingBrightnessMatrix(op.amount(), matrix); |
| - image_filter = CreateMatrixImageFilter(matrix, image_filter); |
| + image_filter = CreateMatrixImageFilter(matrix, std::move(image_filter)); |
| break; |
| case FilterOperation::REFERENCE: { |
| if (!op.image_filter()) |
| break; |
| - skia::RefPtr<SkColorFilter> cf; |
| + sk_sp<SkColorFilter> cf; |
| + // XXXXXXXXXXXXXXXXXXXXXXXXXX |
|
f(malita)
2016/04/21 15:45:47
forgot marker?
tomhudson
2016/04/25 20:20:51
Ugh, my bad. Removed.
|
| { |
| SkColorFilter* colorfilter_rawptr = NULL; |
| op.image_filter()->asColorFilter(&colorfilter_rawptr); |
| - cf = skia::AdoptRef(colorfilter_rawptr); |
| + cf = sk_sp<SkColorFilter>(colorfilter_rawptr); |
| } |
| if (cf && cf->asColorMatrix(matrix) && |
| !op.image_filter()->getInput(0)) { |
| - image_filter = CreateMatrixImageFilter(matrix, image_filter); |
| + image_filter = |
| + CreateMatrixImageFilter(matrix, std::move(image_filter)); |
| } else if (image_filter) { |
| - image_filter = skia::AdoptRef(SkComposeImageFilter::Create( |
| - op.image_filter().get(), image_filter.get())); |
| + image_filter = SkComposeImageFilter::Make(op.image_filter(), |
| + std::move(image_filter)); |
| } else { |
| image_filter = op.image_filter(); |
| } |
| break; |
| } |
| case FilterOperation::ALPHA_THRESHOLD: { |
| - skia::RefPtr<SkImageFilter> alpha_filter = skia::AdoptRef( |
| - SkAlphaThresholdFilter::Create( |
| - op.region(), op.amount(), op.outer_threshold())); |
| + sk_sp<SkImageFilter> alpha_filter = SkAlphaThresholdFilter::Make( |
| + op.region(), op.amount(), op.outer_threshold(), nullptr); |
| if (image_filter.get()) { |
| - image_filter = skia::AdoptRef(SkComposeImageFilter::Create( |
| - alpha_filter.get(), image_filter.get())); |
| + image_filter = SkComposeImageFilter::Make(std::move(alpha_filter), |
| + std::move(image_filter)); |
| } else { |
| - image_filter = alpha_filter; |
| + image_filter = std::move(alpha_filter); |
| } |
| break; |
| } |