Skia
2D Graphics Library
|
ColorFilters are optional objects in the drawing pipeline. More...
#include <SkColorFilter.h>
Public Types | |
enum | Type { kSkColorFilter_Type , kSkBlender_Type , kSkDrawable_Type , kSkDrawLooper_Type , kSkImageFilter_Type , kSkMaskFilter_Type , kSkPathEffect_Type , kSkShader_Type } |
typedef sk_sp< SkFlattenable >(* | Factory) (SkReadBuffer &) |
Public Member Functions | |
bool | asAColorMode (SkColor *color, SkBlendMode *mode) const |
If the filter can be represented by a source color plus Mode, this returns true, and sets (if not NULL) the color and mode appropriately. More... | |
bool | asAColorMatrix (float matrix[20]) const |
If the filter can be represented by a 5x4 matrix, this returns true, and sets the matrix appropriately. More... | |
bool | isAlphaUnchanged () const |
SkColor | filterColor (SkColor) const |
SkColor4f | filterColor4f (const SkColor4f &srcColor, SkColorSpace *srcCS, SkColorSpace *dstCS) const |
Converts the src color (in src colorspace), into the dst colorspace, then applies this filter to it, returning the filtered color in the dst colorspace. More... | |
sk_sp< SkColorFilter > | makeComposed (sk_sp< SkColorFilter > inner) const |
Construct a colorfilter whose effect is to first apply the inner filter and then apply this filter, applied to the output of the inner filter. More... | |
sk_sp< SkColorFilter > | makeWithWorkingColorSpace (sk_sp< SkColorSpace >) const |
Return a colorfilter that will compute this filter in a specific color space. More... | |
virtual Factory | getFactory () const =0 |
Implement this to return a factory function pointer that can be called to recreate your class given a buffer (previously written to by your override of flatten(). More... | |
virtual const char * | getTypeName () const =0 |
Returns the name of the object's class. More... | |
virtual void | flatten (SkWriteBuffer &) const |
Override this if your subclass needs to record data that it will need to recreate itself from its CreateProc (returned by getFactory()). More... | |
virtual Type | getFlattenableType () const =0 |
sk_sp< SkData > | serialize (const SkSerialProcs *=nullptr) const |
size_t | serialize (void *memory, size_t memory_size, const SkSerialProcs *=nullptr) const |
bool | unique () const |
May return true if the caller is the only owner. More... | |
void | ref () const |
Increment the reference count. More... | |
void | unref () const |
Decrement the reference count. More... | |
Static Public Member Functions | |
static sk_sp< SkColorFilter > | Deserialize (const void *data, size_t size, const SkDeserialProcs *procs=nullptr) |
static Factory | NameToFactory (const char name[]) |
static const char * | FactoryToName (Factory) |
static void | Register (const char name[], Factory) |
static sk_sp< SkFlattenable > | Deserialize (Type, const void *data, size_t length, const SkDeserialProcs *procs=nullptr) |
Friends | |
class | SkColorFilterBase |
ColorFilters are optional objects in the drawing pipeline.
When present in a paint, they are called with the "src" colors, and return new colors, which are then passed onto the next stage (either ImageFilter or Xfermode).
All subclasses are required to be reentrant-safe : it must be legal to share the same instance between several threads.
|
inherited |
|
inherited |
bool SkColorFilter::asAColorMatrix | ( | float | matrix[20] | ) | const |
If the filter can be represented by a 5x4 matrix, this returns true, and sets the matrix appropriately.
If not, this returns false and ignores the parameter.
bool SkColorFilter::asAColorMode | ( | SkColor * | color, |
SkBlendMode * | mode | ||
) | const |
If the filter can be represented by a source color plus Mode, this returns true, and sets (if not NULL) the color and mode appropriately.
If not, this returns false and ignores the parameters.
|
static |
|
staticinherited |
|
staticinherited |
SkColor4f SkColorFilter::filterColor4f | ( | const SkColor4f & | srcColor, |
SkColorSpace * | srcCS, | ||
SkColorSpace * | dstCS | ||
) | const |
Converts the src color (in src colorspace), into the dst colorspace, then applies this filter to it, returning the filtered color in the dst colorspace.
|
inlinevirtualinherited |
Override this if your subclass needs to record data that it will need to recreate itself from its CreateProc (returned by getFactory()).
DEPRECATED public : will move to protected ... use serialize() instead
Reimplemented in SkLayerDrawLooper.
|
pure virtualinherited |
Implement this to return a factory function pointer that can be called to recreate your class given a buffer (previously written to by your override of flatten().
Implemented in SkDrawable.
|
pure virtualinherited |
Implemented in SkDrawLooper, and SkDrawable.
|
pure virtualinherited |
Returns the name of the object's class.
Implemented in SkDrawable.
bool SkColorFilter::isAlphaUnchanged | ( | ) | const |
sk_sp<SkColorFilter> SkColorFilter::makeComposed | ( | sk_sp< SkColorFilter > | inner | ) | const |
Construct a colorfilter whose effect is to first apply the inner filter and then apply this filter, applied to the output of the inner filter.
result = this(inner(...))
sk_sp<SkColorFilter> SkColorFilter::makeWithWorkingColorSpace | ( | sk_sp< SkColorSpace > | ) | const |
Return a colorfilter that will compute this filter in a specific color space.
By default all filters operate in the destination (surface) color space. This allows filters like Blend and Matrix, or runtime color filters to perform their math in a known space.
|
staticinherited |
|
inlineinherited |
Increment the reference count.
Must be balanced by a call to unref().
|
staticinherited |
|
inherited |
|
inherited |
|
inlineinherited |
May return true if the caller is the only owner.
Ensures that all previous owner's actions are complete.
|
inlineinherited |
Decrement the reference count.
If the reference count is 1 before the decrement, then delete the object. Note that if this is the case, then the object needs to have been allocated via new, and not on the stack.
|
friend |