serious SkEdgeBuilder refactoring
This splits the three logical types of SkEdgeBuilders
into distinct C++ types, with some shared logic.
Looks like this cuts another 10K off Flutter,
including that 8K table.
Change-Id: I0c901de8b0bb70b9a9dce07683110177a287b0ee
Reviewed-on: https://skia-review.googlesource.com/c/164626
Commit-Queue: Mike Reed <reed@google.com>
Auto-Submit: Mike Klein <mtklein@google.com>
Reviewed-by: Mike Reed <reed@google.com>
diff --git a/src/core/SkScan_DAAPath.cpp b/src/core/SkScan_DAAPath.cpp
index b3bbd97..53da58a 100644
--- a/src/core/SkScan_DAAPath.cpp
+++ b/src/core/SkScan_DAAPath.cpp
@@ -160,10 +160,10 @@
void gen_alpha_deltas(const SkPath& path, const SkIRect& clippedIR, const SkIRect& clipBounds,
Deltas& result, SkBlitter* blitter, bool skipRect, bool pathContainedInClip) {
// 1. Build edges
- SkEdgeBuilder builder(SkEdgeBuilder::kBezier, 0);
+ SkBezierEdgeBuilder builder;
// We have to use clipBounds instead of clippedIR to build edges because of "canCullToTheRight":
// if the builder finds a right edge past the right clip, it won't build that right edge.
- int count = builder.buildEdges(path, &clipBounds, pathContainedInClip);
+ int count = builder.buildEdges(path, pathContainedInClip ? nullptr : &clipBounds);
if (count == 0) {
return;