Flutter Engine
The Flutter Engine
|
#include <SkBlurMaskFilterImpl.h>
Public Member Functions | |
SkBlurMaskFilterImpl (SkScalar sigma, SkBlurStyle, bool respectCTM) | |
SkMask::Format | getFormat () const override |
bool | filterMask (SkMaskBuilder *dst, const SkMask &src, const SkMatrix &, SkIPoint *margin) const override |
SkMaskFilterBase::Type | type () const override |
void | computeFastBounds (const SkRect &, SkRect *) const override |
bool | asABlur (BlurRec *) const override |
sk_sp< SkImageFilter > | asImageFilter (const SkMatrix &ctm) const override |
SkScalar | computeXformedSigma (const SkMatrix &ctm) const |
SkBlurStyle | blurStyle () const |
SkScalar | sigma () const |
bool | ignoreXform () const |
Public Member Functions inherited from SkMaskFilterBase | |
SkFlattenable::Type | getFlattenableType () const override |
Public Member Functions inherited from SkMaskFilter | |
SkRect | approximateFilteredBounds (const SkRect &src) const |
Public Member Functions inherited from SkFlattenable | |
SkFlattenable () | |
virtual Factory | getFactory () const =0 |
virtual const char * | getTypeName () const =0 |
sk_sp< SkData > | serialize (const SkSerialProcs *=nullptr) const |
size_t | serialize (void *memory, size_t memory_size, const SkSerialProcs *=nullptr) const |
Public Member Functions inherited from SkRefCntBase | |
SkRefCntBase () | |
virtual | ~SkRefCntBase () |
bool | unique () const |
void | ref () const |
void | unref () const |
Private Member Functions | |
FilterReturn | filterRectsToNine (const SkRect[], int count, const SkMatrix &, const SkIRect &clipBounds, SkTLazy< NinePatch > *) const override |
FilterReturn | filterRRectToNine (const SkRRect &, const SkMatrix &, const SkIRect &clipBounds, SkTLazy< NinePatch > *) const override |
void | flatten (SkWriteBuffer &) const override |
Friends | |
class | SkBlurMaskFilter |
void | sk_register_blur_maskfilter_createproc () |
Additional Inherited Members | |
Public Types inherited from SkMaskFilterBase | |
enum class | Type { kBlur , kEmboss , kSDF , kShader , kTable } |
Public Types inherited from SkFlattenable | |
enum | Type { kSkColorFilter_Type , kSkBlender_Type , kSkDrawable_Type , kSkDrawLooper_Type , kSkImageFilter_Type , kSkMaskFilter_Type , kSkPathEffect_Type , kSkShader_Type } |
typedef sk_sp< SkFlattenable >(* | Factory) (SkReadBuffer &) |
Static Public Member Functions inherited from SkMaskFilterBase | |
static SkFlattenable::Type | GetFlattenableType () |
Static Public Member Functions inherited from SkMaskFilter | |
static sk_sp< SkMaskFilter > | MakeBlur (SkBlurStyle style, SkScalar sigma, bool respectCTM=true) |
static sk_sp< SkMaskFilter > | Deserialize (const void *data, size_t size, const SkDeserialProcs *procs=nullptr) |
Static Public Member Functions inherited from SkFlattenable | |
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) |
Protected Types inherited from SkMaskFilterBase | |
enum | FilterReturn { kFalse_FilterReturn , kTrue_FilterReturn , kUnimplemented_FilterReturn } |
Protected Member Functions inherited from SkMaskFilterBase | |
SkMaskFilterBase () | |
Definition at line 28 of file SkBlurMaskFilterImpl.h.
SkBlurMaskFilterImpl::SkBlurMaskFilterImpl | ( | SkScalar | sigma, |
SkBlurStyle | style, | ||
bool | respectCTM | ||
) |
Definition at line 50 of file SkBlurMaskFilterImpl.cpp.
|
overridevirtual |
If this filter can be represented by a BlurRec, return true and (if not null) fill in the provided BlurRec parameter. If this effect cannot be represented as a BlurRec, return false and ignore the BlurRec parameter.
Reimplemented from SkMaskFilterBase.
Definition at line 62 of file SkBlurMaskFilterImpl.cpp.
|
overridevirtual |
Return an SkImageFilter representation of this mask filter that SkCanvas can apply to an alpha-only image to produce an equivalent effect to running the mask filter directly.
Reimplemented from SkMaskFilterBase.
Definition at line 74 of file SkBlurMaskFilterImpl.cpp.
|
inline |
Definition at line 44 of file SkBlurMaskFilterImpl.h.
|
overridevirtual |
The fast bounds function is used to enable the paint to be culled early in the drawing pipeline. This function accepts the current bounds of the paint as its src param and the filter adjust those bounds using its current mask and returns the result using the dest param. Callers are allowed to provide the same struct for both src and dest so each implementation must accommodate that behavior.
The default impl calls filterMask with the src mask having no image, but subclasses may override this if they can compute the rect faster.
Reimplemented from SkMaskFilterBase.
Definition at line 506 of file SkBlurMaskFilterImpl.cpp.
Definition at line 103 of file SkBlurMaskFilterImpl.cpp.
|
overridevirtual |
Create a new mask by filter the src mask. If src.fImage == null, then do not allocate or create the dst image but do fill out the other fields in dstMask. If you do allocate a dst image, use SkMask::AllocImage() If this returns false, dst mask is ignored.
dst | the result of the filter. If src.fImage == null, dst should not allocate its image |
src | the original image to be filtered. |
matrix | the CTM |
margin | if not null, return the buffer dx/dy need when calculating the effect. Used when drawing a clipped object to know how much larger to allocate the src before applying the filter. If returning false, ignore this parameter. |
Implements SkMaskFilterBase.
Definition at line 109 of file SkBlurMaskFilterImpl.cpp.
|
overrideprivatevirtual |
Override if your subclass can filter a rect, and return the answer as a ninepatch mask to be stretched over the returned outerRect. On success return kTrue_FilterReturn. On failure (e.g. out of memory) return kFalse_FilterReturn. If the normal filterMask() entry-point should be called (the default) return kUnimplemented_FilterReturn.
By convention, the caller will take the center rol/col from the returned mask as the slice it can replicate horizontally and vertically as we stretch the mask to fit inside outerRect. It is an error for outerRect to be smaller than the mask's bounds. This would imply that the width and height of the mask should be odd. This is not required, just that the caller will call mask.fBounds.centerX() and centerY() to find the strips that will be replicated.
Reimplemented from SkMaskFilterBase.
Definition at line 381 of file SkBlurMaskFilterImpl.cpp.
|
overrideprivatevirtual |
Similar to filterRectsToNine, except it performs the work on a round rect.
Reimplemented from SkMaskFilterBase.
Definition at line 245 of file SkBlurMaskFilterImpl.cpp.
|
overrideprivatevirtual |
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 from SkFlattenable.
Definition at line 527 of file SkBlurMaskFilterImpl.cpp.
|
overridevirtual |
Returns the format of the resulting mask that this subclass will return when its filterMask() method is called.
Implements SkMaskFilterBase.
Definition at line 58 of file SkBlurMaskFilterImpl.cpp.
|
inline |
Definition at line 46 of file SkBlurMaskFilterImpl.h.
|
inline |
Definition at line 45 of file SkBlurMaskFilterImpl.h.
|
inlineoverridevirtual |
|
friend |
Definition at line 533 of file SkBlurMaskFilterImpl.cpp.
|
friend |
Definition at line 71 of file SkBlurMaskFilterImpl.h.