Flutter Engine
The Flutter Engine
Loading...
Searching...
No Matches
Public Member Functions | Private Member Functions | List of all members
SkAnalyticEdgeBuilder Class Referencefinal

#include <SkEdgeBuilder.h>

Inheritance diagram for SkAnalyticEdgeBuilder:
SkEdgeBuilder

Public Member Functions

 SkAnalyticEdgeBuilder ()
 
SkAnalyticEdge ** analyticEdgeList ()
 
- Public Member Functions inherited from SkEdgeBuilder
int buildEdges (const SkPath &path, const SkIRect *shiftedClip)
 

Private Member Functions

char * allocEdges (size_t, size_t *) override
 
SkRect recoverClip (const SkIRect &) const override
 
void addLine (const SkPoint pts[]) override
 
void addQuad (const SkPoint pts[]) override
 
void addCubic (const SkPoint pts[]) override
 
Combine addPolyLine (const SkPoint pts[], char *edge, char **edgePtr) override
 

Additional Inherited Members

- Protected Types inherited from SkEdgeBuilder
enum  Combine { kNo_Combine , kPartial_Combine , kTotal_Combine }
 
- Protected Member Functions inherited from SkEdgeBuilder
 SkEdgeBuilder ()=default
 
virtual ~SkEdgeBuilder ()=default
 
- Protected Attributes inherited from SkEdgeBuilder
void ** fEdgeList = nullptr
 
SkTDArray< void * > fList
 
SkSTArenaAlloc< 512 > fAlloc
 

Detailed Description

Definition at line 75 of file SkEdgeBuilder.h.

Constructor & Destructor Documentation

◆ SkAnalyticEdgeBuilder()

SkAnalyticEdgeBuilder::SkAnalyticEdgeBuilder ( )
inline

Definition at line 77 of file SkEdgeBuilder.h.

77{}

Member Function Documentation

◆ addCubic()

void SkAnalyticEdgeBuilder::addCubic ( const SkPoint  pts[])
overrideprivatevirtual

Implements SkEdgeBuilder.

Definition at line 181 of file SkEdgeBuilder.cpp.

181 {
183 if (edge->setCubic(pts)) {
184 fList.push_back(edge);
185 }
186}
auto make(Ctor &&ctor) -> decltype(ctor(nullptr))
SkTDArray< void * > fList
SkSTArenaAlloc< 512 > fAlloc
void push_back(const T &v)
Definition SkTDArray.h:219
bool setCubic(const SkPoint pts[4], bool sortY=true)

◆ addLine()

void SkAnalyticEdgeBuilder::addLine ( const SkPoint  pts[])
overrideprivatevirtual

Implements SkEdgeBuilder.

Definition at line 147 of file SkEdgeBuilder.cpp.

147 {
149 if (edge->setLine(pts[0], pts[1])) {
150
151 Combine combine = is_vertical(edge) && !fList.empty()
152 ? this->combineVertical(edge, (SkAnalyticEdge*)fList.back())
153 : kNo_Combine;
154
155 switch (combine) {
156 case kTotal_Combine: fList.pop_back(); break;
157 case kPartial_Combine: break;
158 case kNo_Combine: fList.push_back(edge); break;
159 }
160 }
161}
static bool is_vertical(const Edge *edge)
const T & back() const
Definition SkTDArray.h:162
bool empty() const
Definition SkTDArray.h:135
void pop_back()
Definition SkTDArray.h:223
bool setLine(const SkPoint &p0, const SkPoint &p1)

◆ addPolyLine()

SkEdgeBuilder::Combine SkAnalyticEdgeBuilder::addPolyLine ( const SkPoint  pts[],
char *  edge,
char **  edgePtr 
)
overrideprivatevirtual

Implements SkEdgeBuilder.

Definition at line 202 of file SkEdgeBuilder.cpp.

203 {
204 auto edge = (SkAnalyticEdge*) arg_edge;
205 auto edgePtr = (SkAnalyticEdge**)arg_edgePtr;
206
207 if (edge->setLine(pts[0], pts[1])) {
208 return is_vertical(edge) && edgePtr > (SkAnalyticEdge**)fEdgeList
209 ? this->combineVertical(edge, edgePtr[-1])
210 : kNo_Combine;
211 }
212 return SkEdgeBuilder::kPartial_Combine; // As above.
213}
void ** fEdgeList

◆ addQuad()

void SkAnalyticEdgeBuilder::addQuad ( const SkPoint  pts[])
overrideprivatevirtual

Implements SkEdgeBuilder.

Definition at line 168 of file SkEdgeBuilder.cpp.

168 {
170 if (edge->setQuadratic(pts)) {
171 fList.push_back(edge);
172 }
173}
bool setQuadratic(const SkPoint pts[3])

◆ allocEdges()

char * SkAnalyticEdgeBuilder::allocEdges ( size_t  n,
size_t *  size 
)
overrideprivatevirtual

Implements SkEdgeBuilder.

Definition at line 229 of file SkEdgeBuilder.cpp.

229 {
230 *size = sizeof(SkAnalyticEdge);
231 return (char*)fAlloc.makeArrayDefault<SkAnalyticEdge>(n);
232}
T * makeArrayDefault(size_t count)
it will be possible to load the file into Perfetto s trace viewer disable asset Prevents usage of any non test fonts unless they were explicitly Loaded via prefetched default font Indicates whether the embedding started a prefetch of the default font manager before creating the engine run In non interactive keep the shell running after the Dart script has completed enable serial On low power devices with low core running concurrent GC tasks on threads can cause them to contend with the UI thread which could potentially lead to jank This option turns off all concurrent GC activities domain network JSON encoded network policy per domain This overrides the DisallowInsecureConnections switch Embedder can specify whether to allow or disallow insecure connections at a domain level old gen heap size
Definition switches.h:259

◆ analyticEdgeList()

SkAnalyticEdge ** SkAnalyticEdgeBuilder::analyticEdgeList ( )
inline

Definition at line 79 of file SkEdgeBuilder.h.

79{ return (SkAnalyticEdge**)fEdgeList; }

◆ recoverClip()

SkRect SkAnalyticEdgeBuilder::recoverClip ( const SkIRect src) const
overrideprivatevirtual

Implements SkEdgeBuilder.

Definition at line 221 of file SkEdgeBuilder.cpp.

221 {
222 return SkRect::Make(src);
223}
static SkRect Make(const SkISize &size)
Definition SkRect.h:669

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