#include <StrokeIterator.h>
Definition at line 39 of file StrokeIterator.h.
◆ Verb
Enumerator |
---|
kLine | |
kQuad | |
kConic | |
kCubic | |
kCircle | |
kMoveWithinContour | |
kContourFinished | |
Definition at line 48 of file StrokeIterator.h.
48 {
49
55
56
57 kMoveWithinContour,
58 kContourFinished
59 };
@ kCubic
SkPath::RawIter returns 4 points.
@ kConic
SkPath::RawIter returns 3 points + 1 weight.
@ kQuad
SkPath::RawIter returns 3 points.
@ kLine
SkPath::RawIter returns 2 points.
◆ StrokeIterator()
Definition at line 41 of file StrokeIterator.h.
42 : fViewMatrix(viewMatrix), fStroke(
stroke) {
44 fIter = it.begin();
45 fEnd = it.end();
46 }
DEF_SWITCHES_START aot vmservice shared library Name of the *so containing AOT compiled Dart assets for launching the service isolate vm snapshot The VM snapshot data that will be memory mapped as read only SnapshotAssetPath must be present isolate snapshot The isolate snapshot data that will be memory mapped as read only SnapshotAssetPath must be present cache dir path
◆ firstPtsInContour()
const SkPoint * skgpu::tess::StrokeIterator::firstPtsInContour |
( |
| ) |
const |
|
inline |
◆ firstVerbInContour()
Verb skgpu::tess::StrokeIterator::firstVerbInContour |
( |
| ) |
const |
|
inline |
◆ IsVerbGeometric()
static constexpr bool skgpu::tess::StrokeIterator::IsVerbGeometric |
( |
Verb |
verb | ) |
|
|
inlinestaticconstexpr |
◆ next()
bool skgpu::tess::StrokeIterator::next |
( |
| ) |
|
|
inline |
Definition at line 64 of file StrokeIterator.h.
64 {
65 if (fQueueCount) {
67 this->popFront();
68 if (fQueueCount >= 2) {
69 return true;
70 }
73
74 fQueueCount = 0;
75 }
76 }
77 for (; fIter != fEnd; ++fIter) {
78 SkASSERT(fQueueCount == 0 || fQueueCount == 1);
82 if (!this->finishOpenContour()) {
83 continue;
84 }
85 break;
88 [[fallthrough]];
92 [[fallthrough]];
95 fLastDegenerateStrokePt =
pts;
96 continue;
97 }}}
99 if (fQueueCount == 1) {
100
102 fFirstPtsInContour =
pts;
103 fFirstWInContour =
w;
104 continue;
105 }
106 break;
108 if (!fQueueCount) {
109 fLastDegenerateStrokePt =
pts;
110 continue;
111 }
112 if (
pts[0] != fFirstPtsInContour[0]) {
113
114 fClosePts = {
pts[0], fFirstPtsInContour[0]};
115 this->enqueue(
Verb::kLine, fClosePts.data(),
nullptr);
116 }
117
118 this->enqueue(fFirstVerbInContour, fFirstPtsInContour, fFirstWInContour);
120 fLastDegenerateStrokePt = nullptr;
121 break;
122 }
124 ++fIter;
125 return true;
126 }
127 return this->finishOpenContour();
128 }
@ kClose
SkPath::RawIter returns 0 points.
@ kMove
SkPath::RawIter returns 1 point.
const SkPoint * pts() const
◆ prevPts()
const SkPoint * skgpu::tess::StrokeIterator::prevPts |
( |
| ) |
const |
|
inline |
◆ prevVerb()
Verb skgpu::tess::StrokeIterator::prevVerb |
( |
| ) |
const |
|
inline |
◆ pts()
const SkPoint * skgpu::tess::StrokeIterator::pts |
( |
| ) |
const |
|
inline |
◆ verb()
Verb skgpu::tess::StrokeIterator::verb |
( |
| ) |
const |
|
inline |
◆ w()
float skgpu::tess::StrokeIterator::w |
( |
| ) |
const |
|
inline |
The documentation for this class was generated from the following file: