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