| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright 2012 The Android Open Source Project | 2 * Copyright 2012 The Android Open Source Project |
| 3 * | 3 * |
| 4 * Use of this source code is governed by a BSD-style license that can be | 4 * Use of this source code is governed by a BSD-style license that can be |
| 5 * found in the LICENSE file. | 5 * found in the LICENSE file. |
| 6 */ | 6 */ |
| 7 | 7 |
| 8 #include "SkMorphologyImageFilter.h" | 8 #include "SkMorphologyImageFilter.h" |
| 9 #include "SkBitmap.h" | 9 #include "SkBitmap.h" |
| 10 #include "SkColorPriv.h" | 10 #include "SkColorPriv.h" |
| (...skipping 124 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 135 proxy, source, ctx, dst, offset); | 135 proxy, source, ctx, dst, offset); |
| 136 } | 136 } |
| 137 | 137 |
| 138 bool SkDilateImageFilter::onFilterImageDeprecated(Proxy* proxy, | 138 bool SkDilateImageFilter::onFilterImageDeprecated(Proxy* proxy, |
| 139 const SkBitmap& source, const
Context& ctx, | 139 const SkBitmap& source, const
Context& ctx, |
| 140 SkBitmap* dst, SkIPoint* offse
t) const { | 140 SkBitmap* dst, SkIPoint* offse
t) const { |
| 141 return this->filterImageGeneric(SkOpts::dilate_x, SkOpts::dilate_y, | 141 return this->filterImageGeneric(SkOpts::dilate_x, SkOpts::dilate_y, |
| 142 proxy, source, ctx, dst, offset); | 142 proxy, source, ctx, dst, offset); |
| 143 } | 143 } |
| 144 | 144 |
| 145 void SkMorphologyImageFilter::computeFastBounds(const SkRect& src, SkRect* dst)
const { | 145 SkRect SkMorphologyImageFilter::computeFastBounds(const SkRect& src) const { |
| 146 if (this->getInput(0)) { | 146 SkRect bounds = this->getInput(0) ? this->getInput(0)->computeFastBounds(src
) : src; |
| 147 this->getInput(0)->computeFastBounds(src, dst); | 147 bounds.outset(SkIntToScalar(fRadius.width()), SkIntToScalar(fRadius.height()
)); |
| 148 } else { | 148 return bounds; |
| 149 *dst = src; | |
| 150 } | |
| 151 dst->outset(SkIntToScalar(fRadius.width()), SkIntToScalar(fRadius.height()))
; | |
| 152 } | 149 } |
| 153 | 150 |
| 154 void SkMorphologyImageFilter::onFilterNodeBounds(const SkIRect& src, const SkMat
rix& ctm, | 151 SkIRect SkMorphologyImageFilter::onFilterNodeBounds(const SkIRect& src, const Sk
Matrix& ctm, |
| 155 SkIRect* dst, MapDirection) con
st { | 152 MapDirection) const { |
| 156 *dst = src; | |
| 157 SkVector radius = SkVector::Make(SkIntToScalar(this->radius().width()), | 153 SkVector radius = SkVector::Make(SkIntToScalar(this->radius().width()), |
| 158 SkIntToScalar(this->radius().height())); | 154 SkIntToScalar(this->radius().height())); |
| 159 ctm.mapVectors(&radius, 1); | 155 ctm.mapVectors(&radius, 1); |
| 160 dst->outset(SkScalarCeilToInt(radius.x()), SkScalarCeilToInt(radius.y())); | 156 return src.makeOutset(SkScalarCeilToInt(radius.x()), SkScalarCeilToInt(radiu
s.y())); |
| 161 } | 157 } |
| 162 | 158 |
| 163 SkFlattenable* SkErodeImageFilter::CreateProc(SkReadBuffer& buffer) { | 159 SkFlattenable* SkErodeImageFilter::CreateProc(SkReadBuffer& buffer) { |
| 164 SK_IMAGEFILTER_UNFLATTEN_COMMON(common, 1); | 160 SK_IMAGEFILTER_UNFLATTEN_COMMON(common, 1); |
| 165 const int width = buffer.readInt(); | 161 const int width = buffer.readInt(); |
| 166 const int height = buffer.readInt(); | 162 const int height = buffer.readInt(); |
| 167 return Create(width, height, common.getInput(0), &common.cropRect()); | 163 return Create(width, height, common.getInput(0), &common.cropRect()); |
| 168 } | 164 } |
| 169 | 165 |
| 170 SkFlattenable* SkDilateImageFilter::CreateProc(SkReadBuffer& buffer) { | 166 SkFlattenable* SkDilateImageFilter::CreateProc(SkReadBuffer& buffer) { |
| (...skipping 480 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 651 return this->filterImageGPUGeneric(true, proxy, src, ctx, result, offset); | 647 return this->filterImageGPUGeneric(true, proxy, src, ctx, result, offset); |
| 652 } | 648 } |
| 653 | 649 |
| 654 bool SkErodeImageFilter::filterImageGPUDeprecated(Proxy* proxy, const SkBitmap&
src, | 650 bool SkErodeImageFilter::filterImageGPUDeprecated(Proxy* proxy, const SkBitmap&
src, |
| 655 const Context& ctx, | 651 const Context& ctx, |
| 656 SkBitmap* result, SkIPoint* of
fset) const { | 652 SkBitmap* result, SkIPoint* of
fset) const { |
| 657 return this->filterImageGPUGeneric(false, proxy, src, ctx, result, offset); | 653 return this->filterImageGPUGeneric(false, proxy, src, ctx, result, offset); |
| 658 } | 654 } |
| 659 | 655 |
| 660 #endif | 656 #endif |
| OLD | NEW |