8 #ifndef SkColorFilter_DEFINED
9 #define SkColorFilter_DEFINED
11 #include "SkBlendMode.h"
13 #include "SkFlattenable.h"
17 class GrFragmentProcessor;
21 class SkColorSpaceXformer;
22 class SkRasterPipeline;
39 virtual bool asColorMode(
SkColor* color, SkBlendMode* bmode)
const;
46 virtual bool asColorMatrix(SkScalar matrix[20])
const;
64 virtual bool asComponentTable(
SkBitmap* table)
const;
73 virtual void filterSpan(
const SkPMColor src[],
int count,
SkPMColor result[])
const = 0;
75 void appendStages(SkRasterPipeline*,
SkColorSpace*, SkArenaAlloc*,
bool shaderIsOpaque)
const;
80 kAlphaUnchanged_Flag = 1 << 0,
85 virtual uint32_t
getFlags()
const {
return 0; }
149 bool affectsTransparentBlack()
const {
150 return this->filterColor(0) != 0;
153 SK_TO_STRING_PUREVIRT()
155 SK_DECLARE_FLATTENABLE_REGISTRAR_GROUP()
162 return this->onMakeColorSpace(xformer);
165 return sk_ref_sp(const_cast<SkColorFilter*>(
this));
176 virtual int privateComposedFilterCount()
const {
return 1; }
178 virtual void onAppendStages(SkRasterPipeline*,
SkColorSpace*, SkArenaAlloc*,
179 bool shaderIsOpaque)
const = 0;
181 friend class SkColorSpaceXformer;
182 friend class SkComposeColorFilter;
Definition: SkColorSpace.h:59
ColorFilters are optional objects in the drawing pipeline.
Definition: SkColorFilter.h:32
Definition: SkColor.h:179
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:85
The SkBitmap class specifies a raster bitmap.
Definition: SkBitmap.h:37
Definition: GrContext.h:47
uint32_t SkPMColor
32 bit ARGB color value, premultiplied.
Definition: SkColor.h:161
Flags
Definition: SkColorFilter.h:77
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:94
Types and macros for colors.