aboutsummaryrefslogtreecommitdiffhomepage
path: root/gm/imagefiltersgraph.cpp
diff options
context:
space:
mode:
authorGravatar robertphillips <robertphillips@google.com>2016-04-12 12:41:00 -0700
committerGravatar Commit bot <commit-bot@chromium.org>2016-04-12 12:41:00 -0700
commit134ff5c9cf99e1a930cb1b77bf8fb2b7b2c31d31 (patch)
tree7057a98c349c7b77db4179917ba34923b1a930fc /gm/imagefiltersgraph.cpp
parent247e5341a483053862213f1bdda4ce5c47544b8f (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.cpp92
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(