SkXfermodeImageFilter.h 1.1 KB

12345678910111213141516171819202122232425262728293031323334
  1. /*
  2. * Copyright 2013 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 SkXfermodeImageFilter_DEFINED
  8. #define SkXfermodeImageFilter_DEFINED
  9. #include "include/core/SkBlendMode.h"
  10. #include "include/core/SkImageFilter.h"
  11. #include "include/effects/SkArithmeticImageFilter.h"
  12. /**
  13. * This filter takes a SkBlendMode, and uses it to composite the foreground over the background.
  14. * If foreground or background is NULL, the input bitmap (src) is used instead.
  15. */
  16. class SK_API SkXfermodeImageFilter {
  17. public:
  18. static sk_sp<SkImageFilter> Make(SkBlendMode, sk_sp<SkImageFilter> background,
  19. sk_sp<SkImageFilter> foreground,
  20. const SkImageFilter::CropRect* cropRect);
  21. static sk_sp<SkImageFilter> Make(SkBlendMode mode, sk_sp<SkImageFilter> background) {
  22. return Make(mode, std::move(background), nullptr, nullptr);
  23. }
  24. static void RegisterFlattenables();
  25. private:
  26. SkXfermodeImageFilter(); // can't instantiate
  27. };
  28. #endif