aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/core/SkEdgeBuilder.h
diff options
context:
space:
mode:
authorGravatar caryclark <caryclark@google.com>2016-01-30 14:07:20 -0800
committerGravatar Commit bot <commit-bot@chromium.org>2016-01-30 14:07:20 -0800
commitafd25f703d9bbc9cd80b03b63b30abd14db4911d (patch)
treeb1ba20f1791d6c2bd00f633170b9a38a89aca848 /src/core/SkEdgeBuilder.h
parent02a6bfaaaa077dc3738cec3713a50cc4293ac7ec (diff)
combine vertical overlapping edges
Paths outside clips, and sometimes paths inside clips, devolve to multiple adjacent or overlapping vertical edges. Combine these edges when possible to reduce the overall edge count. R=reed@google.com BUG=573166 GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1654433002 Review URL: https://codereview.chromium.org/1654433002
Diffstat (limited to 'src/core/SkEdgeBuilder.h')
-rw-r--r--src/core/SkEdgeBuilder.h9
1 files changed, 9 insertions, 0 deletions
diff --git a/src/core/SkEdgeBuilder.h b/src/core/SkEdgeBuilder.h
index 625465b8a6..047460d4fe 100644
--- a/src/core/SkEdgeBuilder.h
+++ b/src/core/SkEdgeBuilder.h
@@ -27,6 +27,15 @@ public:
SkEdge** edgeList() { return fEdgeList; }
private:
+ enum Combine {
+ kNo_Combine,
+ kPartial_Combine,
+ kTotal_Combine
+ };
+
+ static Combine CombineVertical(const SkEdge* edge, SkEdge* last);
+ Combine checkVertical(const SkEdge* edge, SkEdge** edgePtr);
+
SkChunkAlloc fAlloc;
SkTDArray<SkEdge*> fList;