diff options
author | caryclark <caryclark@google.com> | 2016-01-30 14:07:20 -0800 |
---|---|---|
committer | Commit bot <commit-bot@chromium.org> | 2016-01-30 14:07:20 -0800 |
commit | afd25f703d9bbc9cd80b03b63b30abd14db4911d (patch) | |
tree | b1ba20f1791d6c2bd00f633170b9a38a89aca848 /src/core/SkEdgeBuilder.h | |
parent | 02a6bfaaaa077dc3738cec3713a50cc4293ac7ec (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.h | 9 |
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; |