8 #ifndef SkColorFilter_DEFINED
9 #define SkColorFilter_DEFINED
12 #include "SkFlattenable.h"
14 #include "SkXfermode.h"
19 class SkRasterPipeline;
43 virtual bool asColorMatrix(SkScalar matrix[20])
const;
61 virtual bool asComponentTable(
SkBitmap* table)
const;
70 virtual void filterSpan(
const SkPMColor src[],
int count,
SkPMColor result[])
const = 0;
72 virtual void filterSpan4f(
const SkPM4f src[],
int count, SkPM4f result[])
const;
74 bool appendStages(SkRasterPipeline*)
const;
79 kAlphaUnchanged_Flag = 1 << 0,
84 virtual uint32_t
getFlags()
const {
return 0; }
134 #ifdef SK_SUPPORT_LEGACY_COLORFILTER_PTR
136 return MakeModeFilter(c, mode).release();
139 return MakeComposeFilter(sk_ref_sp(outer), sk_ref_sp(inner)).release();
141 static SkColorFilter* CreateMatrixFilterRowMajor255(
const SkScalar array[20]) {
142 return MakeMatrixFilterRowMajor255(array).release();
145 return this->makeComposed(sk_ref_sp(const_cast<SkColorFilter*>(inner))).release();
162 bool affectsTransparentBlack()
const {
163 return this->filterColor(0) != 0;
166 SK_TO_STRING_PUREVIRT()
168 SK_DECLARE_FLATTENABLE_REGISTRAR_GROUP()
174 virtual bool onAppendStages(SkRasterPipeline*)
const;
184 virtual int privateComposedFilterCount()
const {
return 1; }
185 friend class SkComposeColorFilter;
Provides custom fragment shader code.
Definition: GrFragmentProcessor.h:24
Mode
List of predefined xfermodes.
Definition: SkXfermode.h:71
ColorFilters are optional objects in the drawing pipeline.
Definition: SkColorFilter.h:29
Definition: SkColor.h:169
SkFlattenable is the base class for objects that need to be flattened into a data stream for either t...
Definition: SkFlattenable.h:70
virtual uint32_t getFlags() const
Returns the flags for this filter.
Definition: SkColorFilter.h:84
The SkBitmap class specifies a raster bitmap.
Definition: SkBitmap.h:41
Definition: GrContext.h:48
uint32_t SkPMColor
32 bit ARGB color value, premultiplied.
Definition: SkColor.h:147
Flags
Definition: SkColorFilter.h:76
uint32_t SkColor
32 bit ARGB color value, not premultiplied.
Definition: SkColor.h:28
virtual sk_sp< SkColorFilter > makeComposed(sk_sp< SkColorFilter >) const
If this subclass can optimally createa composition with the inner filter, return it as a new filter (...
Definition: SkColorFilter.h:93
Types and macros for colors.