Flutter Engine
The Flutter Engine
Loading...
Searching...
No Matches
Public Member Functions | Static Public Member Functions | List of all members
SkLine2DPathEffectImpl Class Reference
Inheritance diagram for SkLine2DPathEffectImpl:
Sk2DPathEffect SkPathEffectBase SkPathEffect SkFlattenable SkRefCnt SkRefCntBase

Public Member Functions

 SkLine2DPathEffectImpl (SkScalar width, const SkMatrix &matrix)
 
bool onFilterPath (SkPath *dst, const SkPath &src, SkStrokeRec *rec, const SkRect *cullRect, const SkMatrix &ctm) const override
 
void nextSpan (int u, int v, int ucount, SkPath *dst) const override
 
void flatten (SkWriteBuffer &buffer) const override
 
Factory getFactory () const override
 
const char * getTypeName () const override
 
- Public Member Functions inherited from Sk2DPathEffect
 Sk2DPathEffect (const SkMatrix &mat)
 
- Public Member Functions inherited from SkPathEffectBase
 SkPathEffectBase ()
 
bool asPoints (PointData *results, const SkPath &src, const SkStrokeRec &, const SkMatrix &, const SkRect *cullR) const
 
SkFlattenable::Type getFlattenableType () const override
 
virtual bool onNeedsCTM () const
 
virtual bool onAsPoints (PointData *, const SkPath &, const SkStrokeRec &, const SkMatrix &, const SkRect *) const
 
virtual DashType onAsADash (DashInfo *) const
 
- Public Member Functions inherited from SkPathEffect
DashType asADash (DashInfo *info) const
 
bool filterPath (SkPath *dst, const SkPath &src, SkStrokeRec *, const SkRect *cullR) const
 
bool filterPath (SkPath *dst, const SkPath &src, SkStrokeRec *, const SkRect *cullR, const SkMatrix &ctm) const
 
bool needsCTM () const
 
- Public Member Functions inherited from SkFlattenable
 SkFlattenable ()
 
sk_sp< SkDataserialize (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
 

Static Public Member Functions

static sk_sp< SkFlattenableCreateProc (SkReadBuffer &buffer)
 
- Static Public Member Functions inherited from SkPathEffectBase
static sk_sp< SkPathEffectDeserialize (const void *data, size_t size, const SkDeserialProcs *procs=nullptr)
 
static void RegisterFlattenables ()
 
- Static Public Member Functions inherited from SkPathEffect
static sk_sp< SkPathEffectMakeSum (sk_sp< SkPathEffect > first, sk_sp< SkPathEffect > second)
 
static sk_sp< SkPathEffectMakeCompose (sk_sp< SkPathEffect > outer, sk_sp< SkPathEffect > inner)
 
static SkFlattenable::Type GetFlattenableType ()
 
static sk_sp< SkPathEffectDeserialize (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< SkFlattenableDeserialize (Type, const void *data, size_t length, const SkDeserialProcs *procs=nullptr)
 

Additional Inherited Members

- Public Types inherited from SkPathEffect
enum  DashType { kNone_DashType , kDash_DashType }
 
- 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 &)
 
- Protected Member Functions inherited from Sk2DPathEffect
virtual void begin (const SkIRect &uvBounds, SkPath *dst) const
 
virtual void next (const SkPoint &loc, int u, int v, SkPath *dst) const
 
virtual void end (SkPath *dst) const
 
const SkMatrixgetMatrix () const
 

Detailed Description

Definition at line 120 of file Sk2DPathEffect.cpp.

Constructor & Destructor Documentation

◆ SkLine2DPathEffectImpl()

SkLine2DPathEffectImpl::SkLine2DPathEffectImpl ( SkScalar  width,
const SkMatrix matrix 
)
inline

Definition at line 122 of file Sk2DPathEffect.cpp.

123 : Sk2DPathEffect(matrix)
124 , fWidth(width)
125 {
126 SkASSERT(width >= 0);
127 }
#define SkASSERT(cond)
Definition SkAssert.h:116
int32_t width

Member Function Documentation

◆ CreateProc()

static sk_sp< SkFlattenable > SkLine2DPathEffectImpl::CreateProc ( SkReadBuffer buffer)
inlinestatic

Definition at line 151 of file Sk2DPathEffect.cpp.

151 {
153 buffer.readMatrix(&matrix);
154 SkScalar width = buffer.readScalar();
155 return SkLine2DPathEffect::Make(width, matrix);
156 }
static sk_sp< SkPathEffect > Make(SkScalar width, const SkMatrix &matrix)
float SkScalar
Definition extension.cpp:12
static const uint8_t buffer[]
unsigned useCenter Optional< SkMatrix > matrix
Definition SkRecords.h:258

◆ flatten()

void SkLine2DPathEffectImpl::flatten ( SkWriteBuffer ) const
inlineoverridevirtual

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 Sk2DPathEffect.

Definition at line 158 of file Sk2DPathEffect.cpp.

158 {
159 buffer.writeMatrix(this->getMatrix());
160 buffer.writeScalar(fWidth);
161 }
const SkMatrix & getMatrix() const

◆ getFactory()

Factory SkLine2DPathEffectImpl::getFactory ( ) const
inlineoverridevirtual

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().

Implements SkFlattenable.

Definition at line 163 of file Sk2DPathEffect.cpp.

163{ return CreateProc; }
static sk_sp< SkFlattenable > CreateProc(SkReadBuffer &buffer)

◆ getTypeName()

const char * SkLine2DPathEffectImpl::getTypeName ( ) const
inlineoverridevirtual

Returns the name of the object's class.

Implements SkFlattenable.

Definition at line 164 of file Sk2DPathEffect.cpp.

164{ return "SkLine2DPathEffect"; }

◆ nextSpan()

void SkLine2DPathEffectImpl::nextSpan ( int  x,
int  y,
int  ucount,
SkPath path 
) const
inlineoverridevirtual

Low-level virtual called per span of locations in the u-direction. The default implementation calls next() repeatedly with each location.

Reimplemented from Sk2DPathEffect.

Definition at line 138 of file Sk2DPathEffect.cpp.

138 {
139 if (ucount > 1) {
140 SkPoint src[2], dstP[2];
141
144 this->getMatrix().mapPoints(dstP, src, 2);
145
146 dst->moveTo(dstP[0]);
147 dst->lineTo(dstP[1]);
148 }
149 }
#define SK_ScalarHalf
Definition SkScalar.h:19
#define SkIntToScalar(x)
Definition SkScalar.h:57
void mapPoints(SkPoint dst[], const SkPoint src[], int count) const
Definition SkMatrix.cpp:770
dst
Definition cp.py:12

◆ onFilterPath()

bool SkLine2DPathEffectImpl::onFilterPath ( SkPath ,
const SkPath ,
SkStrokeRec ,
const SkRect ,
const SkMatrix  
) const
inlineoverridevirtual

Filter the input path.

The CTM parameter is provided for path effects that can use the information. The output of path effects must always be in the original (input) coordinate system, regardless of whether the path effect uses the CTM or not.

Reimplemented from Sk2DPathEffect.

Definition at line 129 of file Sk2DPathEffect.cpp.

130 {
131 if (this->INHERITED::onFilterPath(dst, src, rec, cullRect, ctm)) {
132 rec->setStrokeStyle(fWidth);
133 return true;
134 }
135 return false;
136 }
bool onFilterPath(SkPath *dst, const SkPath &src, SkStrokeRec *rec, const SkRect *cullRect, const SkMatrix &) const override

The documentation for this class was generated from the following file: