SkOffsetImageFilter.h 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. /*
  2. * Copyright 2012 The Android Open Source Project
  3. *
  4. * Use of this source code is governed by a BSD-style license that can be
  5. * found in the LICENSE file.
  6. */
  7. #ifndef SkOffsetImageFilter_DEFINED
  8. #define SkOffsetImageFilter_DEFINED
  9. #include "SkFlattenable.h"
  10. #include "SkImageFilter.h"
  11. #include "SkPoint.h"
  12. class SK_API SkOffsetImageFilter : public SkImageFilter {
  13. public:
  14. static sk_sp<SkImageFilter> Make(SkScalar dx, SkScalar dy,
  15. sk_sp<SkImageFilter> input,
  16. const CropRect* cropRect = nullptr);
  17. SkRect computeFastBounds(const SkRect& src) const override;
  18. protected:
  19. void flatten(SkWriteBuffer&) const override;
  20. sk_sp<SkSpecialImage> onFilterImage(SkSpecialImage* source, const Context&,
  21. SkIPoint* offset) const override;
  22. sk_sp<SkImageFilter> onMakeColorSpace(SkColorSpaceXformer*) const override;
  23. SkIRect onFilterNodeBounds(const SkIRect&, const SkMatrix& ctm,
  24. MapDirection, const SkIRect* inputRect) const override;
  25. private:
  26. SK_FLATTENABLE_HOOKS(SkOffsetImageFilter)
  27. SkOffsetImageFilter(SkScalar dx, SkScalar dy, sk_sp<SkImageFilter> input, const CropRect*);
  28. SkVector fOffset;
  29. typedef SkImageFilter INHERITED;
  30. };
  31. #endif