Go to the source code of this file.
◆ check_inverse_on_empty_return()
Definition at line 330 of file SkRegion_path.cpp.
330 {
331 if (
path.isInverseFillType()) {
333 } else {
334 return dst->setEmpty();
335 }
336}
static SkPath clip(const SkPath &path, const SkHalfPlane &plane)
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
◆ count_path_runtype_values()
static int count_path_runtype_values |
( |
const SkPath & |
path, |
|
|
int * |
itop, |
|
|
int * |
ibot |
|
) |
| |
|
static |
Definition at line 291 of file SkRegion_path.cpp.
291 {
295
296 int maxEdges = 0;
299
302
304 if (lastIndex > 0) {
305 for (int i = 1; i <= lastIndex; i++) {
306 if (top > pts[i].fY) {
308 } else if (bot < pts[i].fY) {
310 }
311 }
313 if (top > pts[0].fY) {
315 } else if (bot < pts[0].fY) {
317 }
318 }
319 }
320 if (0 == maxEdges) {
321 return 0;
322 }
323
327 return maxEdges;
328}
static constexpr int16_t SK_MaxS16
static constexpr int16_t SK_MinS16
static unsigned verb_to_initial_last_index(unsigned verb)
static unsigned verb_to_max_edges(unsigned verb)
#define SkScalarRoundToInt(x)
◆ extract_path()
Definition at line 515 of file SkRegion_path.cpp.
515 {
516 while (0 == edge->
fFlags) {
517 edge++;
518 }
519
521
526
530 do {
534 }
539 }
while (edge !=
base);
543}
static float prev(float f)
SkRegionPriv::RunType fY0
◆ find_link()
static void find_link |
( |
Edge * |
base, |
|
|
Edge * |
stop |
|
) |
| |
|
static |
Definition at line 473 of file SkRegion_path.cpp.
473 {
475
476 if (
base->fFlags == Edge::kCompleteLink) {
478 return;
479 }
480
482
485
487 if ((
base->fFlags & Edge::kY0Link) == 0) {
488 for (;;) {
490 if ((
e->fFlags & Edge::kY1Link) == 0 && y0 ==
e->fY1) {
493 e->fFlags =
SkToU8(
e->fFlags | Edge::kY1Link);
494 break;
495 }
496 }
497 }
498
500 if ((
base->fFlags & Edge::kY1Link) == 0) {
501 for (;;) {
503 if ((
e->fFlags & Edge::kY0Link) == 0 && y1 ==
e->fY0) {
506 e->fFlags =
SkToU8(
e->fFlags | Edge::kY0Link);
507 break;
508 }
509 }
510 }
511
513}
constexpr uint8_t SkToU8(S x)
◆ sk_memeq32()
Definition at line 35 of file SkRegion_path.cpp.
35 {
36 for (
int i = 0; i <
count; ++i) {
38 return false;
39 }
40 }
41 return true;
42}
◆ verb_to_initial_last_index()
static unsigned verb_to_initial_last_index |
( |
unsigned |
verb | ) |
|
|
static |
Definition at line 262 of file SkRegion_path.cpp.
262 {
263 static const uint8_t gPathVerbToInitialLastIndex[] = {
264 0,
265 1,
266 2,
267 2,
268 3,
269 0,
270 0
271 };
272 SkASSERT((
unsigned)verb < std::size(gPathVerbToInitialLastIndex));
273 return gPathVerbToInitialLastIndex[verb];
274}
◆ verb_to_max_edges()
static unsigned verb_to_max_edges |
( |
unsigned |
verb | ) |
|
|
static |
Definition at line 276 of file SkRegion_path.cpp.
276 {
277 static const uint8_t gPathVerbToMaxEdges[] = {
278 0,
279 1,
280 2,
281 2,
282 3,
283 0,
284 0
285 };
286 SkASSERT((
unsigned)verb < std::size(gPathVerbToMaxEdges));
287 return gPathVerbToMaxEdges[verb];
288}