| Index: src/effects/SkMorphologyImageFilter.cpp
|
| diff --git a/src/effects/SkMorphologyImageFilter.cpp b/src/effects/SkMorphologyImageFilter.cpp
|
| index 6abd1fc2365eac1e99f16d43632940411cd5a638..7b3a86cbc2cf3fcc29b1b5d610dd72f6dd701f20 100644
|
| --- a/src/effects/SkMorphologyImageFilter.cpp
|
| +++ b/src/effects/SkMorphologyImageFilter.cpp
|
| @@ -28,11 +28,13 @@
|
| #include "glsl/GrGLSLUniformHandler.h"
|
| #endif
|
|
|
| -SkMorphologyImageFilter::SkMorphologyImageFilter(int radiusX,
|
| +SkMorphologyImageFilter::SkMorphologyImageFilter(Op op,
|
| + int radiusX,
|
| int radiusY,
|
| SkImageFilter* input,
|
| const CropRect* cropRect)
|
| : INHERITED(1, &input, cropRect)
|
| + , fOp(op)
|
| , fRadius(SkISize::Make(radiusX, radiusY)) {
|
| }
|
|
|
| @@ -515,10 +517,9 @@ static sk_sp<SkSpecialImage> apply_morphology(SkSpecialImage* input,
|
| }
|
| #endif
|
|
|
| -sk_sp<SkSpecialImage> SkMorphologyImageFilter::filterImageGeneric(bool dilate,
|
| - SkSpecialImage* source,
|
| - const Context& ctx,
|
| - SkIPoint* offset) const {
|
| +sk_sp<SkSpecialImage> SkMorphologyImageFilter::onFilterImage(SkSpecialImage* source,
|
| + const Context& ctx,
|
| + SkIPoint* offset) const {
|
| SkIPoint inputOffset = SkIPoint::Make(0, 0);
|
| sk_sp<SkSpecialImage> input(this->filterInput(0, source, ctx, &inputOffset));
|
| if (!input) {
|
| @@ -552,8 +553,8 @@ sk_sp<SkSpecialImage> SkMorphologyImageFilter::filterImageGeneric(bool dilate,
|
|
|
| #if SK_SUPPORT_GPU
|
| if (input->peekTexture()) {
|
| - auto type = dilate ? GrMorphologyEffect::kDilate_MorphologyType
|
| - : GrMorphologyEffect::kErode_MorphologyType;
|
| + auto type = (kDilate_Op == fOp) ? GrMorphologyEffect::kDilate_MorphologyType
|
| + : GrMorphologyEffect::kErode_MorphologyType;
|
| sk_sp<SkSpecialImage> result(apply_morphology(input.get(), srcBounds, type,
|
| SkISize::Make(width, height)));
|
| if (result) {
|
| @@ -586,7 +587,7 @@ sk_sp<SkSpecialImage> SkMorphologyImageFilter::filterImageGeneric(bool dilate,
|
|
|
| SkMorphologyImageFilter::Proc procX, procY;
|
|
|
| - if (dilate) {
|
| + if (kDilate_Op == fOp) {
|
| procX = SkOpts::dilate_x;
|
| procY = SkOpts::dilate_y;
|
| } else {
|
| @@ -622,14 +623,3 @@ sk_sp<SkSpecialImage> SkMorphologyImageFilter::filterImageGeneric(bool dilate,
|
| SkIRect::MakeWH(bounds.width(), bounds.height()),
|
| dst);
|
| }
|
| -
|
| -sk_sp<SkSpecialImage> SkDilateImageFilter::onFilterImage(SkSpecialImage* source, const Context& ctx,
|
| - SkIPoint* offset) const {
|
| - return this->filterImageGeneric(true, source, ctx, offset);
|
| -}
|
| -
|
| -sk_sp<SkSpecialImage> SkErodeImageFilter::onFilterImage(SkSpecialImage* source, const Context& ctx,
|
| - SkIPoint* offset) const {
|
| - return this->filterImageGeneric(false, source, ctx, offset);
|
| -}
|
| -
|
|
|