diff options
author | robertphillips <robertphillips@google.com> | 2016-04-12 12:41:00 -0700 |
---|---|---|
committer | Commit bot <commit-bot@chromium.org> | 2016-04-12 12:41:00 -0700 |
commit | 134ff5c9cf99e1a930cb1b77bf8fb2b7b2c31d31 (patch) | |
tree | 7057a98c349c7b77db4179917ba34923b1a930fc /gm/imagefiltersgraph.cpp | |
parent | 247e5341a483053862213f1bdda4ce5c47544b8f (diff) |
Remove SimpleOffsetFilter
SimpleOffsetFilter & SkOffsetImageFilter seem equivalent nowadays.
GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1884733002
Review URL: https://codereview.chromium.org/1884733002
Diffstat (limited to 'gm/imagefiltersgraph.cpp')
-rw-r--r-- | gm/imagefiltersgraph.cpp | 92 |
1 files changed, 3 insertions, 89 deletions
diff --git a/gm/imagefiltersgraph.cpp b/gm/imagefiltersgraph.cpp index 8c80ca3379..d9ab4d025e 100644 --- a/gm/imagefiltersgraph.cpp +++ b/gm/imagefiltersgraph.cpp @@ -15,6 +15,7 @@ #include "SkImage.h" #include "SkImageSource.h" #include "SkMatrixConvolutionImageFilter.h" +#include "SkOffsetImageFilter.h" #include "SkReadBuffer.h" #include "SkSpecialImage.h" #include "SkSpecialSurface.h" @@ -24,94 +25,6 @@ #include "SkTestImageFilters.h" #include "SkXfermodeImageFilter.h" -// More closely models how Blink's OffsetFilter works as of 10/23/13. SkOffsetImageFilter doesn't -// perform a draw and this one does. -class SimpleOffsetFilter : public SkImageFilter { -public: - class Registrar { - public: - Registrar() { - SkFlattenable::Register("SimpleOffsetFilter", - SimpleOffsetFilter::CreateProc, - SimpleOffsetFilter::GetFlattenableType()); - } - }; - static sk_sp<SkImageFilter> Make(SkScalar dx, SkScalar dy, sk_sp<SkImageFilter> input) { - return sk_sp<SkImageFilter>(new SimpleOffsetFilter(dx, dy, std::move(input))); - } - - SK_TO_STRING_OVERRIDE() - SK_DECLARE_PUBLIC_FLATTENABLE_DESERIALIZATION_PROCS(SimpleOffsetFilter); - -protected: - sk_sp<SkSpecialImage> onFilterImage(SkSpecialImage* source, const Context& ctx, - SkIPoint* offset) const override { - SkIPoint inputOffset = SkIPoint::Make(0, 0); - sk_sp<SkSpecialImage> input(this->filterInput(0, source, ctx, &inputOffset)); - if (!input) { - return nullptr; - } - - SkIRect bounds; - input = this->applyCropRect(ctx, input.get(), &inputOffset, &bounds); - if (!input) { - return nullptr; - } - - SkImageInfo info = SkImageInfo::MakeN32Premul(bounds.width(), bounds.height()); - - sk_sp<SkSpecialSurface> surf(source->makeSurface(info)); - if (!surf) { - return nullptr; - } - - SkCanvas* canvas = surf->getCanvas(); - SkASSERT(canvas); - - SkPaint paint; - paint.setXfermodeMode(SkXfermode::kSrc_Mode); - - input->draw(canvas, fDX - bounds.left(), fDY - bounds.top(), &paint); - - offset->fX += bounds.left(); - offset->fY += bounds.top(); - return surf->makeImageSnapshot(); - } - - void flatten(SkWriteBuffer& buffer) const override { - this->INHERITED::flatten(buffer); - buffer.writeScalar(fDX); - buffer.writeScalar(fDY); - } - -private: - SimpleOffsetFilter(SkScalar dx, SkScalar dy, sk_sp<SkImageFilter> input) - : SkImageFilter(&input, 1, nullptr) - , fDX(dx) - , fDY(dy) { - } - - SkScalar fDX, fDY; - - typedef SkImageFilter INHERITED; -}; - -static SimpleOffsetFilter::Registrar gReg; - -sk_sp<SkFlattenable> SimpleOffsetFilter::CreateProc(SkReadBuffer& buffer) { - SK_IMAGEFILTER_UNFLATTEN_COMMON(common, 1); - SkScalar dx = buffer.readScalar(); - SkScalar dy = buffer.readScalar(); - return Make(dx, dy, common.getInput(0)); -} - -#ifndef SK_IGNORE_TO_STRING -void SimpleOffsetFilter::toString(SkString* str) const { - str->appendf("SimpleOffsetFilter: ("); - str->append(")"); -} -#endif - class ImageFiltersGraphGM : public skiagm::GM { public: ImageFiltersGraphGM() {} @@ -173,7 +86,8 @@ protected: sk_sp<SkColorFilter> matrixCF(SkColorFilter::MakeMatrixFilterRowMajor255(matrix)); sk_sp<SkImageFilter> matrixFilter(SkColorFilterImageFilter::Make(std::move(matrixCF), nullptr)); - sk_sp<SkImageFilter> offsetFilter(SimpleOffsetFilter::Make(10.0f, 10.f, matrixFilter)); + sk_sp<SkImageFilter> offsetFilter(SkOffsetImageFilter::Make(10.0f, 10.f, + matrixFilter)); SkPaint paint; paint.setImageFilter( |