8 #ifndef SkMergeImageFilter_DEFINED
9 #define SkMergeImageFilter_DEFINED
11 #include "SkImageFilter.h"
13 #include "SkXfermode.h"
27 SK_TO_STRING_OVERRIDE()
30 #ifdef SK_SUPPORT_LEGACY_IMAGEFILTER_PTR
33 const CropRect* cropRect =
nullptr) {
34 return Make(sk_ref_sp<SkImageFilter>(first),
35 sk_ref_sp<SkImageFilter>(second),
41 const CropRect* cropRect =
nullptr) {
43 for (
int i = 0; i < count; ++i) {
44 temp[i] = sk_ref_sp<SkImageFilter>(filters[i]);
46 return Make(temp.get(), count, modes, cropRect).release();
58 const CropRect* cropRect);
64 intptr_t fStorage[16];
66 void initAllocModes();
T *SK_WARN_UNUSED_RESULT release()
Return the bare pointer, and set the internal object pointer to nullptr.
Definition: SkRefCnt.h:363
Definition: SkImageFilter.h:55
Mode
List of predefined xfermodes.
Definition: SkXfermode.h:71
[Sa + Da * (1 - Sa), Sc + Dc * (1 - Sa)]
Definition: SkXfermode.h:75
void flatten(SkWriteBuffer &) const override
Override this if your subclass needs to record data that it will need to recreate itself from its Cre...
virtual sk_sp< SkSpecialImage > onFilterImage(SkSpecialImage *src, const Context &, SkIPoint *offset) const =0
This is the virtual which should be overridden by the derived class to perform image filtering...
Definition: SkMergeImageFilter.h:15
Base class for image filters.
Definition: SkImageFilter.h:35
Definition: SkWriteBuffer.h:26
bool onCanHandleComplexCTM() const override
Override this to describe the behavior of your subclass - as a leaf node.
Definition: SkMergeImageFilter.h:54
Definition: SkImageFilter.h:37
SkIPoint holds two 32 bit integer coordinates.
Definition: SkPoint.h:40